{
struct bt_field_wrapper *field_wrapper;
+ BT_ASSERT_PRE_NO_ERROR();
BT_ASSERT_PRE_NON_NULL(stream_class, "Stream class");
- BT_ASSERT_PRE(stream_class->frozen,
- "Stream class is not part of a trace class: %!+S",
+ BT_ASSERT_PRE(stream_class->supports_packets,
+ "Stream class does not support packets: %![sc-]+S",
stream_class);
BT_ASSERT_PRE(stream_class->packet_context_fc,
"Stream class has no packet context field class: %!+S",
&stream_class->packet_context_field_pool,
(void *) stream_class->packet_context_fc);
if (!field_wrapper) {
- BT_LIB_LOGE("Cannot allocate one packet context field from stream class: "
+ BT_LIB_LOGE_APPEND_CAUSE(
+ "Cannot allocate one packet context field from stream class: "
"%![sc-]+S", stream_class);
- goto error;
+ goto end;
}
BT_ASSERT(field_wrapper->field);
bt_stream_class_freeze(stream_class);
- goto end;
-
-error:
- if (field_wrapper) {
- bt_field_wrapper_destroy(field_wrapper);
- field_wrapper = NULL;
- }
end:
return (void *) field_wrapper;