X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=formats%2Fctf%2Fir%2Fevent-class.c;h=3747a5cf9da21daad3f76ed2940ccf22a7bd437f;hb=0686ef9496b70a2b1e401375ca6ffd529c4b2a34;hp=fa5756d65930d1cc90276b97d3b7009b9dd76752;hpb=2073703a07609514bbffaf7cce5eaa63526d8270;p=babeltrace.git diff --git a/formats/ctf/ir/event-class.c b/formats/ctf/ir/event-class.c index fa5756d6..3747a5cf 100644 --- a/formats/ctf/ir/event-class.c +++ b/formats/ctf/ir/event-class.c @@ -226,7 +226,8 @@ int bt_ctf_event_class_set_attribute( ret = -1; goto end; } - } else if (!strcmp(name, "name") || !strcmp(name, "model.emf.uri")) { + } else if (!strcmp(name, "name") || !strcmp(name, "model.emf.uri") || + !strcmp(name, "loglevel_string")) { if (!bt_value_is_string(value)) { ret = -1; goto end; @@ -355,16 +356,19 @@ int bt_ctf_event_class_set_payload_type(struct bt_ctf_event_class *event_class, { int ret = 0; - if (!event_class || !payload || - bt_ctf_field_type_get_type_id(payload) != - BT_CTF_TYPE_ID_STRUCT) { + if (!event_class) { + ret = -1; + goto end; + } + + if (payload && bt_ctf_field_type_get_type_id(payload) != + BT_CTF_TYPE_ID_STRUCT) { ret = -1; goto end; } - bt_get(payload); bt_put(event_class->fields); - event_class->fields = payload; + event_class->fields = bt_get(payload); end: return ret; } @@ -488,19 +492,19 @@ int bt_ctf_event_class_set_context_type( { int ret = 0; - if (!event_class || !context || event_class->frozen) { + if (!event_class || event_class->frozen) { ret = -1; goto end; } - if (bt_ctf_field_type_get_type_id(context) != BT_CTF_TYPE_ID_STRUCT) { + if (context && bt_ctf_field_type_get_type_id(context) != + BT_CTF_TYPE_ID_STRUCT) { ret = -1; goto end; } - bt_get(context); bt_put(event_class->context); - event_class->context = context; + event_class->context = bt_get(context); end: return ret;