BT_LOGV_MEM(buffer_addr, buffer_sz, "Returned bytes at %p:",
buffer_addr);
} else if (m_status == BT_CTF_NOTIF_ITER_MEDIUM_STATUS_EOF) {
+ struct bt_ctf_field_type *ph_ft =
+ bt_ctf_trace_get_packet_header_type(notit->meta.trace);
struct bt_ctf_field_type *eh_ft = NULL;
struct bt_ctf_field_type *sec_ft = NULL;
struct bt_ctf_field_type *ec_ft = NULL;
goto bad_state;
}
+ if (notit->state == STATE_DSCOPE_STREAM_PACKET_CONTEXT_BEGIN) {
+ /*
+ * Beginning of packet context context is only
+ * valid if there's no packet header.
+ */
+ if (!ph_ft) {
+ goto good_state;
+ }
+ }
+
eh_ft = bt_ctf_stream_class_get_event_header_type(
notit->meta.stream_class);
sec_ft = bt_ctf_stream_class_get_event_context_type(
m_status = BT_CTF_NOTIF_ITER_MEDIUM_STATUS_ERROR;
good_state:
+ bt_put(ph_ft);
bt_put(eh_ft);
bt_put(sec_ft);
bt_put(ec_ft);
if (id_field_type && event_id == -1ULL) {
/* Check "id" field */
struct bt_ctf_field *id_field = NULL;
- int ret = 0;
+ int ret_get_value = 0;
// TODO: optimalize!
id_field = bt_ctf_field_structure_get_field(
}
if (bt_ctf_field_is_integer(id_field)) {
- ret = bt_ctf_field_unsigned_integer_get_value(
+ ret_get_value = bt_ctf_field_unsigned_integer_get_value(
id_field, &event_id);
} else if (bt_ctf_field_is_enumeration(id_field)) {
struct bt_ctf_field *container;
container = bt_ctf_field_enumeration_get_container(
id_field);
assert(container);
- ret = bt_ctf_field_unsigned_integer_get_value(
+ ret_get_value = bt_ctf_field_unsigned_integer_get_value(
container, &event_id);
BT_PUT(container);
}
- assert(ret == 0);
+ assert(ret_get_value == 0);
BT_PUT(id_field);
}