From 777b9beb2373f2e98c5d5f28ad0e2c8f79ceea8a Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 2 Mar 2017 10:19:53 +0900 Subject: [PATCH] ecore_imf/ibus: Fix memory leak allocated by ibus_bus_new --- src/modules/ecore_imf/ibus/ibus_imcontext.c | 10 ++++++++++ src/modules/ecore_imf/ibus/ibus_imcontext.h | 1 + src/modules/ecore_imf/ibus/ibus_module.c | 1 + 3 files changed, 12 insertions(+) diff --git a/src/modules/ecore_imf/ibus/ibus_imcontext.c b/src/modules/ecore_imf/ibus/ibus_imcontext.c index 48d8a710b8..caa5fd83c5 100644 --- a/src/modules/ecore_imf/ibus/ibus_imcontext.c +++ b/src/modules/ecore_imf/ibus/ibus_imcontext.c @@ -303,6 +303,16 @@ ecore_imf_context_ibus_new(void) return context; } +void +ecore_imf_context_ibus_shutdown(void) +{ + if (_bus) + { + g_object_unref(_bus); + _bus = NULL; + } +} + void ecore_imf_context_ibus_add(Ecore_IMF_Context *ctx) { diff --git a/src/modules/ecore_imf/ibus/ibus_imcontext.h b/src/modules/ecore_imf/ibus/ibus_imcontext.h index 141bfe7a00..93eff151cf 100644 --- a/src/modules/ecore_imf/ibus/ibus_imcontext.h +++ b/src/modules/ecore_imf/ibus/ibus_imcontext.h @@ -37,4 +37,5 @@ void ecore_imf_context_ibus_client_canvas_set(Ecore_IMF_Context *context, void * Eina_Bool ecore_imf_context_ibus_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event); IBusIMContext *ecore_imf_context_ibus_new(void); +void ecore_imf_context_ibus_shutdown(void); #endif diff --git a/src/modules/ecore_imf/ibus/ibus_module.c b/src/modules/ecore_imf/ibus/ibus_module.c index 63240f1908..c35ab3991a 100644 --- a/src/modules/ecore_imf/ibus/ibus_module.c +++ b/src/modules/ecore_imf/ibus/ibus_module.c @@ -81,6 +81,7 @@ im_module_init(void) static void im_module_shutdown(void) { + ecore_imf_context_ibus_shutdown(); } static Ecore_IMF_Context *