aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/funnel_stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/funnel_stat.c')
-rw-r--r--gtk/funnel_stat.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gtk/funnel_stat.c b/gtk/funnel_stat.c
index 43f10ef73f..aa569dbba8 100644
--- a/gtk/funnel_stat.c
+++ b/gtk/funnel_stat.c
@@ -107,8 +107,8 @@ static void unref_text_win_cancel_bt_cb(GtkWidget *bt _U_, gpointer data) {
for (i = 0; i < tw->buttons->len; i++) {
funnel_bt_t* cbd = g_ptr_array_index(tw->buttons,i);
/* XXX a free cb should be passed somehow */
- if (cbd->data) g_free(cbd->data);
- g_free(cbd);
+ if (cbd->data && cbd->free_data) cbd->free_data(cbd->data);
+ if (cbd->free) cbd->free(cbd);
}
g_ptr_array_free(tw->buttons,TRUE);
g_free(tw);
@@ -128,8 +128,8 @@ static gboolean text_window_unref_del_event_cb(GtkWidget *win _U_, GdkEvent *eve
for (i = 0; i < tw->buttons->len; i++) {
funnel_bt_t* cbd = g_ptr_array_index(tw->buttons,i);
/* XXX a free cb should be passed somehow */
- if (cbd->data) g_free(cbd->data);
- g_free(cbd);
+ if (cbd->data && cbd->free_data) cbd->free_data(cbd->data);
+ if (cbd->free) cbd->free(cbd);
}
g_ptr_array_free(tw->buttons,TRUE);
g_free(tw);
@@ -380,8 +380,8 @@ static void text_window_destroy(funnel_text_window_t* tw) {
for (i = 0; i < tw->buttons->len; i++) {
funnel_bt_t* cbd = g_ptr_array_index(tw->buttons,i);
/* XXX a free cb should be passed somehow */
- if (cbd->data) g_free(cbd->data);
- g_free(cbd);
+ if (cbd->data && cbd->free_data) cbd->free_data(cbd->data);
+ if (cbd->free) cbd->free(cbd);
}
g_ptr_array_free(tw->buttons,TRUE);
g_free(tw);