X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fstream-class.c;h=cf9e58e5b49a13722f056eca51d2756b2b636b84;hb=835b2d10c5c80ebad6427ba3794d712dd44ef145;hp=d1cac621a8b022681534436e0196f7f151699978;hpb=0b9ce69feb255192e6919496b3b29b275d72a470;p=babeltrace.git diff --git a/formats/ctf/ir/stream-class.c b/formats/ctf/ir/stream-class.c index d1cac621..cf9e58e5 100644 --- a/formats/ctf/ir/stream-class.c +++ b/formats/ctf/ir/stream-class.c @@ -421,7 +421,7 @@ int bt_ctf_stream_class_add_event_class( /* Only set an event ID if none was explicitly set before */ *event_id = bt_ctf_event_class_get_id(event_class); - if (event_id < 0) { + if (*event_id < 0) { if (bt_ctf_event_class_set_id(event_class, stream_class->next_event_id++)) { ret = -1; @@ -478,10 +478,10 @@ int bt_ctf_stream_class_add_event_class( /* Notifiy listeners of the trace's schema modification. */ if (trace) { - struct bt_ctf_ir_element element = { .element = event_class, - .type = BT_CTF_IR_TYPE_EVENT_CLASS }; + struct bt_ctf_object obj = { .object = event_class, + .type = BT_CTF_OBJECT_TYPE_EVENT_CLASS }; - (void) bt_ctf_trace_element_modification(&element, trace); + (void) bt_ctf_trace_object_modification(&obj, trace); } end: BT_PUT(trace); @@ -594,18 +594,15 @@ int bt_ctf_stream_class_set_packet_context_type( { int ret = 0; - if (!stream_class || !packet_context_type || stream_class->frozen) { + if (!stream_class || stream_class->frozen) { ret = -1; goto end; } - assert(stream_class->packet_context_type); - if (stream_class->packet_context_type == packet_context_type) { - goto end; - } - if (bt_ctf_field_type_get_type_id(packet_context_type) != - BT_CTF_TYPE_ID_STRUCT) { - /* A packet context must be a structure */ + if (packet_context_type && + bt_ctf_field_type_get_type_id(packet_context_type) != + BT_CTF_TYPE_ID_STRUCT) { + /* A packet context must be a structure. */ ret = -1; goto end; } @@ -639,25 +636,21 @@ int bt_ctf_stream_class_set_event_header_type( { int ret = 0; - if (!stream_class || !event_header_type || stream_class->frozen) { + if (!stream_class || stream_class->frozen) { ret = -1; goto end; } - assert(stream_class->event_header_type); - if (stream_class->event_header_type == event_header_type) { - goto end; - } - if (bt_ctf_field_type_get_type_id(event_header_type) != - BT_CTF_TYPE_ID_STRUCT) { - /* An event header must be a structure */ + if (event_header_type && + bt_ctf_field_type_get_type_id(event_header_type) != + BT_CTF_TYPE_ID_STRUCT) { + /* An event header must be a structure. */ ret = -1; goto end; } bt_put(stream_class->event_header_type); - bt_get(event_header_type); - stream_class->event_header_type = event_header_type; + stream_class->event_header_type = bt_get(event_header_type); end: return ret; } @@ -671,7 +664,6 @@ struct bt_ctf_field_type *bt_ctf_stream_class_get_event_context_type( goto end; } - assert(stream_class->event_context_type); bt_get(stream_class->event_context_type); ret = stream_class->event_context_type; end: @@ -684,21 +676,21 @@ int bt_ctf_stream_class_set_event_context_type( { int ret = 0; - if (!stream_class || !event_context_type || stream_class->frozen) { + if (!stream_class || stream_class->frozen) { ret = -1; goto end; } - if (bt_ctf_field_type_get_type_id(event_context_type) != - BT_CTF_TYPE_ID_STRUCT) { - /* A packet context must be a structure */ + if (event_context_type && + bt_ctf_field_type_get_type_id(event_context_type) != + BT_CTF_TYPE_ID_STRUCT) { + /* A packet context must be a structure. */ ret = -1; goto end; } bt_put(stream_class->event_context_type); - bt_get(event_context_type); - stream_class->event_context_type = event_context_type; + stream_class->event_context_type = bt_get(event_context_type); end: return ret; } @@ -728,29 +720,29 @@ void *get_event_class(void *element, int i) } static -int visit_event_class(void *element, bt_ctf_ir_visitor visitor,void *data) +int visit_event_class(void *object, bt_ctf_visitor visitor,void *data) { - struct bt_ctf_ir_element ir_element = - { .element = element, - .type = BT_CTF_IR_TYPE_EVENT_CLASS }; + struct bt_ctf_object obj = + { .object = object, + .type = BT_CTF_OBJECT_TYPE_EVENT_CLASS }; - return visitor(&ir_element, data); + return visitor(&obj, data); } int bt_ctf_stream_class_visit(struct bt_ctf_stream_class *stream_class, - bt_ctf_ir_visitor visitor, void *data) + bt_ctf_visitor visitor, void *data) { int ret; - struct bt_ctf_ir_element element = - { .element = stream_class, - .type = BT_CTF_IR_TYPE_STREAM_CLASS }; + struct bt_ctf_object obj = + { .object = stream_class, + .type = BT_CTF_OBJECT_TYPE_STREAM_CLASS }; if (!stream_class || !visitor) { ret = -1; goto end; } - ret = visitor_helper(&element, get_event_class_count, + ret = visitor_helper(&obj, get_event_class_count, get_event_class, visit_event_class, visitor, data); end: