X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttv%2Flttv%2Ftraceset.c;h=32553b5e475be7f1173d033cdcef11d867993c2b;hb=922581a4a91dcb870a6168112a6198a1afacf0bb;hp=45d63143c7a92adf22a410e6b192db5166842ce0;hpb=90e19f82bca635a1ba52b8a50b64e484bd19c14f;p=lttv.git diff --git a/lttv/lttv/traceset.c b/lttv/lttv/traceset.c index 45d63143..32553b5e 100644 --- a/lttv/lttv/traceset.c +++ b/lttv/lttv/traceset.c @@ -23,6 +23,7 @@ #include #include #include +#include /* A trace is a sequence of events gathered in the same tracing session. The events may be stored in several tracefiles in the same directory. @@ -33,6 +34,7 @@ struct _LttvTraceset { char * filename; GPtrArray *traces; + struct bt_context *context; LttvAttribute *a; }; @@ -51,6 +53,7 @@ LttvTraceset *lttv_traceset_new() s = g_new(LttvTraceset, 1); s->filename = NULL; s->traces = g_ptr_array_new(); + s->context = bt_context_create(); s->a = g_object_new(LTTV_ATTRIBUTE_TYPE, NULL); return s; } @@ -88,6 +91,8 @@ LttvTraceset *lttv_traceset_copy(LttvTraceset *s_orig) g_ptr_array_add(s->traces, trace); } + s->context = s_orig->context; + bt_context_get(s->context); s->a = LTTV_ATTRIBUTE(lttv_iattribute_deep_copy(LTTV_IATTRIBUTE(s_orig->a))); return s; } @@ -130,10 +135,16 @@ void lttv_traceset_destroy(LttvTraceset *s) lttv_trace_destroy(trace); } g_ptr_array_free(s->traces, TRUE); + bt_context_put(s->context); g_object_unref(s->a); g_free(s); } +struct bt_context *lttv_traceset_get_context(LttvTraceset *s) +{ + return s->context; +} + void lttv_trace_destroy(LttvTrace *t) { g_object_unref(t->a);