From mboxrd@z Thu Jan 1 00:00:00 1970 From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers) Date: Tue, 13 Sep 2011 17:12:34 -0400 Subject: [ltt-dev] [BABELTRACE PATCH] Free the callbacks on iter_destroy In-Reply-To: <1315945985-29058-1-git-send-email-julien.desfossez@polymtl.ca> References: <1315945985-29058-1-git-send-email-julien.desfossez@polymtl.ca> Message-ID: <20110913211234.GA21109@Krystal> * Julien Desfossez (julien.desfossez at polymtl.ca) wrote: > Signed-off-by: Julien Desfossez [ edit : use TRUE instead of 1 ] merged, thanks! MAthieu > --- > converter/babeltrace-lib.c | 23 +++++++++++++++++++++++ > 1 files changed, 23 insertions(+), 0 deletions(-) > > diff --git a/converter/babeltrace-lib.c b/converter/babeltrace-lib.c > index 176eff3..3e17bf9 100644 > --- a/converter/babeltrace-lib.c > +++ b/converter/babeltrace-lib.c > @@ -406,8 +406,31 @@ error_malloc: > > void babeltrace_iter_destroy(struct babeltrace_iter *iter) > { > + struct bt_stream_callbacks *bt_stream_cb; > + struct bt_callback_chain *bt_chain; > + int i, j; > + > heap_free(iter->stream_heap); > g_free(iter->stream_heap); > + > + /* free all events callbacks */ > + if (iter->main_callbacks.callback) > + g_array_free(iter->main_callbacks.callback, 1); > + > + /* free per-event callbacks */ > + for (i = 0; i < iter->callbacks->len; i++) { > + bt_stream_cb = &g_array_index(iter->callbacks, > + struct bt_stream_callbacks, i); > + if (!bt_stream_cb || !bt_stream_cb->per_id_callbacks) > + continue; > + for (j = 0; j < bt_stream_cb->per_id_callbacks->len; j++) { > + bt_chain = &g_array_index(bt_stream_cb->per_id_callbacks, > + struct bt_callback_chain, j); > + g_array_free(bt_chain->callback, 1); > + } > + g_array_free(bt_stream_cb->per_id_callbacks, 1); > + } > + > free(iter); > } > > -- > 1.7.5.4 > -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com