raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67246cddcb8559d47d18134b7eb3468046846fd5
commit 67246cddcb8559d47d18134b7eb3468046846fd5 Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Sat Jul 30 01:42:15 2016 +0900 ecore imf - ibus - fix destroy/disconnect handling that crashes restart e or have ibus input get destroyed and come back... the ibus module will do bad things to its pants... because the wrong things were passed to the signal callbacks... this fixers that along with ensuring a freed string ptr is NULL. @fix --- src/modules/ecore_imf/ibus/ibus_imcontext.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/ecore_imf/ibus/ibus_imcontext.c b/src/modules/ecore_imf/ibus/ibus_imcontext.c index 40c9b6c..9ed2501 100644 --- a/src/modules/ecore_imf/ibus/ibus_imcontext.c +++ b/src/modules/ecore_imf/ibus/ibus_imcontext.c @@ -338,7 +338,7 @@ ecore_imf_context_ibus_add(Ecore_IMF_Context *ctx) if (ibus_bus_is_connected(_bus)) _ecore_imf_context_ibus_create(ibusimcontext); - g_signal_connect(_bus, "connected", G_CALLBACK (_ecore_imf_context_ibus_bus_connected_cb), ctx); + g_signal_connect(_bus, "connected", G_CALLBACK (_ecore_imf_context_ibus_bus_connected_cb), ibusimcontext); } EAPI void @@ -353,7 +353,7 @@ ecore_imf_context_ibus_del(Ecore_IMF_Context *ctx) g_signal_handlers_disconnect_by_func(_bus, G_CALLBACK(_ecore_imf_context_ibus_bus_connected_cb), - ctx); + ibusimcontext); if (ibusimcontext->ibuscontext) ibus_proxy_destroy((IBusProxy *)ibusimcontext->ibuscontext); @@ -361,6 +361,7 @@ ecore_imf_context_ibus_del(Ecore_IMF_Context *ctx) // release preedit if (ibusimcontext->preedit_string) free(ibusimcontext->preedit_string); + ibusimcontext->preedit_string = NULL; if (ibusimcontext->preedit_attrs) { --