From e196e55ea3dec7752ba60423b3f78fdf573051e0 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 12 Aug 2015 18:22:14 +0200 Subject: [PATCH] fix memory leaks in gtk interface --- gtk/incall_view.c | 1 + gtk/main.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gtk/incall_view.c b/gtk/incall_view.c index c3b137fb6..c29e9e118 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -612,6 +612,7 @@ static void on_audio_meter_destroy(GtkWidget *w, gpointer data){ g_source_remove(task_id); } + void linphone_gtk_init_audio_meter(GtkWidget *w, get_volume_t get_volume, void *data){ guint task_id=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(w),"task_id")); if (task_id==0){ diff --git a/gtk/main.c b/gtk/main.c index 8a2df40d9..4f0790181 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -398,8 +398,8 @@ GtkWidget *linphone_gtk_create_widget(const char *widget_name) { g_error("'%s' widget not found", widget_name); goto fail; } - - g_object_set_data_full(obj, "builder", builder, g_object_unref); + g_object_set_data(G_OBJECT(obj), "builder", builder); + g_signal_connect_data(G_OBJECT(obj),"destroy",(GCallback)g_object_unref,builder, NULL, G_CONNECT_AFTER|G_CONNECT_SWAPPED); gtk_builder_connect_signals(builder, obj); return GTK_WIDGET(obj);