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)
      {

-- 


Reply via email to