goto end;
}
+ /*
+ * The event is not supposed to have a parent stream at this
+ * point. The only other way an event can have a parent stream
+ * is if it was assigned when setting a packet to the event,
+ * in which case the packet's stream is not a writer stream,
+ * and thus the user is trying to append an event which belongs
+ * to another stream.
+ */
+ if (event->base.parent) {
+ ret = -1;
+ goto end;
+ }
+
bt_object_set_parent(event, stream);
ret = bt_ctf_event_populate_event_header(event);
if (ret) {
- goto end;
+ goto error;
}
/* Make sure the various scopes of the event are set */
ret = bt_ctf_event_validate(event);
if (ret) {
- goto end;
+ goto error;
}
/* Save the new event and freeze it */
* longer needed.
*/
bt_put(event->event_class);
+
end:
- if (ret) {
- /*
- * Orphan the event; we were not succesful in associating it to
- * a stream.
- */
- bt_object_set_parent(event, NULL);
- }
+ return ret;
+
+error:
+ /*
+ * Orphan the event; we were not successful in associating it to
+ * a stream.
+ */
+ bt_object_set_parent(event, NULL);
+
return ret;
}
if (stream->name) {
g_string_free(stream->name, TRUE);
}
+
bt_put(stream->packet_header);
bt_put(stream->packet_context);
g_free(stream);