X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=converter%2Fbabeltrace-lib.c;h=51011e1d2906de9e55440f4c101b4e8c5c3b2ac9;hp=bd0e11e1dd795d3da0a8d9f8b10abba9ebeb0c2a;hb=c5e74408f9786219f6b44400dcf2098ab9cc78fb;hpb=2e8b37d41284e54bdb5af4bf5b51c5a616f69597 diff --git a/converter/babeltrace-lib.c b/converter/babeltrace-lib.c index bd0e11e1..51011e1d 100644 --- a/converter/babeltrace-lib.c +++ b/converter/babeltrace-lib.c @@ -34,6 +34,7 @@ int convert_event(struct ctf_text_stream_pos *sout, struct ctf_event *event_class; uint64_t id = 0; int len_index; + int ret; if (sin->pos.offset == -EOF) return -EOF; @@ -43,8 +44,9 @@ int convert_event(struct ctf_text_stream_pos *sout, /* Read and print event header */ if (stream_class->event_header) { - generic_rw(&sin->pos.parent, &stream_class->event_header->p); - + ret = generic_rw(&sin->pos.parent, &stream_class->event_header->p); + if (ret) + return ret; /* lookup event id */ len_index = struct_declaration_lookup_field_index(stream_class->event_header_decl, g_quark_from_static_string("id")); @@ -59,13 +61,19 @@ int convert_event(struct ctf_text_stream_pos *sout, id = defint->value._unsigned; /* set id */ } - generic_rw(&sout->parent, &stream_class->event_header->p); + ret = generic_rw(&sout->parent, &stream_class->event_header->p); + if (ret) + return ret; } /* Read and print stream-declared event context */ if (stream_class->event_context) { - generic_rw(&sin->pos.parent, &stream_class->event_context->p); - generic_rw(&sout->parent, &stream_class->event_context->p); + ret = generic_rw(&sin->pos.parent, &stream_class->event_context->p); + if (ret) + return ret; + ret = generic_rw(&sout->parent, &stream_class->event_context->p); + if (ret) + return ret; } if (id >= stream_class->events_by_id->len) { @@ -80,14 +88,22 @@ int convert_event(struct ctf_text_stream_pos *sout, /* Read and print event-declared event context */ if (event_class->context) { - generic_rw(&sin->pos.parent, &event_class->context->p); - generic_rw(&sout->parent, &event_class->context->p); + ret = generic_rw(&sin->pos.parent, &event_class->context->p); + if (ret) + return ret; + ret = generic_rw(&sout->parent, &event_class->context->p); + if (ret) + return ret; } /* Read and print event payload */ if (event_class->fields) { - generic_rw(&sin->pos.parent, &event_class->fields->p); - generic_rw(&sout->parent, &event_class->fields->p); + ret = generic_rw(&sin->pos.parent, &event_class->fields->p); + if (ret) + return ret; + ret = generic_rw(&sout->parent, &event_class->fields->p); + if (ret) + return ret; } return 0;