Fix the elm_shutdown bug in _elm_shutdown_config.
authorJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 19 Mar 2013 10:53:53 +0000 (19:53 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Thu, 21 Mar 2013 08:14:38 +0000 (17:14 +0900)
When the elm_shutdown is used after elm_config_all_flush, the segment fault occur.
It's why it uses ecore_x in _prop_all_update_cb after removing it.

Conflicts:
ChangeLog
NEWS

Change-Id: Ie8e665fb58a42b51361aed7a0c41566ca10c0d27

ChangeLog
NEWS
src/lib/elm_config.c

index 0375289..4f4dea0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
         * Add the config ELM_THUMBSCROLL_HOLD_THRESHOLD.
         This is the number of pixels the range which can be scrolled, while the scroller is holed.
+
+2013-03-19  Jaehwan Kim
+
+        * Fix the elm_shutdown bug in _elm_shutdown_config.
+        When the elm_shutdown is used after elm_config_all_flush, the segment fault occur.
+        It's why it uses ecore_x in _prop_all_update_cb after removing it.
diff --git a/NEWS b/NEWS
index 2026c76..bd76d21 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -76,6 +76,7 @@ Fixes :
    * Fix a elm_transit crash issue when user delete all target objects in the effect end callback.
    * Fix small memory leak in elm_map error path
    * Focus highlight should not be shown on (0, 0).
+   * Fix the elm_shutdown bug in _elm_shutdown_config.
 
 Removals:
 
index 59f0aa1..2d26a2e 100644 (file)
@@ -2224,6 +2224,17 @@ _elm_config_init(void)
 void
 _elm_config_sub_shutdown(void)
 {
+#ifdef HAVE_ELEMENTARY_X
+   if (_prop_all_update_timer)
+     {
+        ecore_timer_del(_prop_all_update_timer);
+        _prop_all_update_timer = NULL;
+        _prop_all_update_cb(NULL);
+     }
+   if (_prop_change_delay_timer) ecore_timer_del(_prop_change_delay_timer);
+   _prop_change_delay_timer = NULL;
+#endif
+
 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
    if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
        ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
@@ -2423,17 +2434,6 @@ _elm_config_profile_exists(const char *profile)
 void
 _elm_config_shutdown(void)
 {
-#ifdef HAVE_ELEMENTARY_X
-   if (_prop_all_update_timer)
-     {
-        ecore_timer_del(_prop_all_update_timer);
-        _prop_all_update_timer = NULL;
-        _prop_all_update_cb(NULL);
-     }
-   if (_prop_change_delay_timer) ecore_timer_del(_prop_change_delay_timer);
-   _prop_change_delay_timer = NULL;
-#endif
-
 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
    if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
        ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||