API : list of events in the trace
[babeltrace.git] / formats / ctf / ctf.c
index 22051f18b027c922470b6bd5a069562a87f744e2..91fc20c3972626a59075b13dcf72df981b30f2a3 100644 (file)
@@ -900,7 +900,7 @@ end_stream:
 static
 struct ctf_event_definition *create_event_definitions(struct ctf_trace *td,
                                                  struct ctf_stream_definition *stream,
-                                                 struct ctf_event *event)
+                                                 struct ctf_event_declaration *event)
 {
        struct ctf_event_definition *stream_event = g_new0(struct ctf_event_definition, 1);
 
@@ -926,6 +926,7 @@ struct ctf_event_definition *create_event_definitions(struct ctf_trace *td,
                                        struct definition_struct, p);
                stream->parent_def_scope = stream_event->event_fields->p.scope;
        }
+       stream_event->stream = stream;
        return stream_event;
 
 error:
@@ -987,7 +988,7 @@ int create_stream_definitions(struct ctf_trace *td, struct ctf_stream_definition
        stream->events_by_id = g_ptr_array_new();
        g_ptr_array_set_size(stream->events_by_id, stream_class->events_by_id->len);
        for (i = 0; i < stream->events_by_id->len; i++) {
-               struct ctf_event *event = g_ptr_array_index(stream_class->events_by_id, i);
+               struct ctf_event_declaration *event = g_ptr_array_index(stream_class->events_by_id, i);
                struct ctf_event_definition *stream_event;
 
                if (!event)
@@ -1616,6 +1617,16 @@ void ctf_close_trace(struct trace_descriptor *tdp)
                }
                g_ptr_array_free(td->streams, TRUE);
        }
+
+       if (td->event_declarations) {
+               for (i = 0; i < td->event_declarations->len; i++) {
+                       struct bt_ctf_event_decl *event;
+
+                       event = g_ptr_array_index(td->event_declarations, i);
+                       g_free(event);
+               }
+               g_ptr_array_free(td->event_declarations, TRUE);
+       }
        closedir(td->dir);
        g_free(td);
 }
This page took 0.025399 seconds and 4 git commands to generate.