Mercurial > dwindows
changeset 1867:a3e356948426
Minor signal handler fixes for GTK2 ... prevents
crash on exit due to double free().
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 19 Mar 2013 07:03:29 +0000 |
parents | f3ae396b3585 |
children | dc3260e1a915 |
files | gtk/dw.c |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Mon Mar 18 09:47:55 2013 +0000 +++ b/gtk/dw.c Tue Mar 19 07:03:29 2013 +0000 @@ -13650,6 +13650,7 @@ if(thisfunc) { sigid = _set_signal_handler(thiswindow, window, sigfunc, data, thisfunc); + params[0] = GINT_TO_POINTER(sigid); gtk_object_set_data(GTK_OBJECT(thiswindow), "_dw_tree_item_expand_func", (gpointer)thisfunc); gtk_object_set_data(GTK_OBJECT(thiswindow), "_dw_tree_item_expand_data", GINT_TO_POINTER(sigid)); } @@ -13665,6 +13666,7 @@ cid = g_signal_connect_data(G_OBJECT(thiswindow), "key_press_event", G_CALLBACK(_container_enter_event), params, _dw_signal_disconnect, 0); _set_signal_handler_id(thiswindow, sigid, cid); + params = calloc(sizeof(void *), 3); thisname = "button_press_event"; thisfunc = _findsigfunc(DW_SIGNAL_ITEM_ENTER); } @@ -13713,6 +13715,7 @@ if (!thisfunc || !thiswindow) { + free(params); DW_MUTEX_UNLOCK; return; }