X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=types%2Farray.c;h=f592dba1ebdf9905cf3230586aaf990d0db9556c;hp=cd7b31bf2724e8aedab636be99dd0cc0bcc1133f;hb=c5e74408f9786219f6b44400dcf2098ab9cc78fb;hpb=2e8b37d41284e54bdb5af4bf5b51c5a616f69597 diff --git a/types/array.c b/types/array.c index cd7b31bf..f592dba1 100644 --- a/types/array.c +++ b/types/array.c @@ -27,20 +27,24 @@ struct definition *_array_definition_new(struct declaration *declaration, static void _array_definition_free(struct definition *definition); -void array_rw(struct stream_pos *pos, struct definition *definition) +int array_rw(struct stream_pos *pos, struct definition *definition) { struct definition_array *array_definition = container_of(definition, struct definition_array, p); const struct declaration_array *array_declaration = array_definition->declaration; uint64_t i; + int ret; /* No need to align, because the first field will align itself. */ for (i = 0; i < array_declaration->len; i++) { struct definition *elem = g_array_index(array_definition->elems, struct field, i).definition; - generic_rw(pos, elem); + ret = generic_rw(pos, elem); + if (ret) + return ret; } + return 0; } static