[FIELD_TYPE_ALIAS_UINT64_T] = 64,
};
-static
-void put_stream_class(struct bt_ctf_stream_class *stream_class)
-{
- (void) bt_ctf_stream_class_set_trace(stream_class, NULL);
- bt_put(stream_class);
-}
-
struct bt_ctf_trace *bt_ctf_trace_create(void)
{
struct bt_ctf_trace *trace = NULL;
trace->clocks = g_ptr_array_new_with_free_func(
(GDestroyNotify) bt_put);
trace->streams = g_ptr_array_new_with_free_func(
- (GDestroyNotify) bt_put);
+ (GDestroyNotify) bt_object_release);
trace->stream_classes = g_ptr_array_new_with_free_func(
- (GDestroyNotify) put_stream_class);
+ (GDestroyNotify) bt_object_release);
if (!trace->clocks || !trace->stream_classes || !trace->streams) {
goto error;
}
goto error;
}
- bt_get(stream);
g_ptr_array_add(trace->streams, stream);
-
return stream;
error:
BT_PUT(stream);
}
}
- /* Set weak reference to trace in stream class */
- ret = bt_ctf_stream_class_set_trace(stream_class, trace);
- if (ret) {
- /* Stream class already part of another trace */
- goto end;
- }
-
- bt_get(stream_class);
+ bt_object_set_parent(stream_class, trace);
g_ptr_array_add(trace->stream_classes, stream_class);
/*
bt_ctf_stream_class_freeze(stream_class);
if (!trace->frozen) {
ret = bt_ctf_trace_freeze(trace);
- goto end;
}
end:
if (ret) {
- (void) bt_ctf_stream_class_set_trace(stream_class, NULL);
+ bt_object_set_parent(stream_class, NULL);
}
return ret;
}