X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=types%2Fstruct.c;h=6e82b57fb845e13d1c69d837efca679928dedd12;hp=211d1b02dd16bbc199695f29a976c6eb3c4c8759;hb=c5e74408f9786219f6b44400dcf2098ab9cc78fb;hpb=2e8b37d41284e54bdb5af4bf5b51c5a616f69597 diff --git a/types/struct.c b/types/struct.c index 211d1b02..6e82b57f 100644 --- a/types/struct.c +++ b/types/struct.c @@ -30,17 +30,21 @@ struct definition *_struct_definition_new(struct declaration *declaration, static void _struct_definition_free(struct definition *definition); -void struct_rw(struct stream_pos *ppos, struct definition *definition) +int struct_rw(struct stream_pos *ppos, struct definition *definition) { struct definition_struct *struct_definition = container_of(definition, struct definition_struct, p); unsigned long i; + int ret; for (i = 0; i < struct_definition->fields->len; i++) { struct field *field = &g_array_index(struct_definition->fields, struct field, i); - generic_rw(ppos, field->definition); + ret = generic_rw(ppos, field->definition); + if (ret) + return ret; } + return 0; } static