Merge "fixed setting-plugin-efl crash issues" into tizen_2.2
authorMyoungJune Park <mj2004.park@samsung.com>
Wed, 26 Jun 2013 23:40:08 +0000 (23:40 +0000)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Wed, 26 Jun 2013 23:40:08 +0000 (23:40 +0000)
setting-common/src/setting-common-plugin.c

index 10782c5..c7956be 100755 (executable)
@@ -194,16 +194,7 @@ void setting_drawer_list_fini()
 #define APPID_POS_FROM_PATH 10
 
 static char* s_pkg_name;
-
-#if 0
-static char* substring(const char* str, size_t begin, size_t len)
-{
-  if (str == 0 || strlen(str) == 0 || strlen(str) < begin || strlen(str) < (begin+len))
-    return 0;
-
-  return strndup(str + begin, len);
-}
-#endif
+static char* s_plugin_path;
 
 /**
  * package ID
@@ -233,10 +224,10 @@ static DBusHandlerResult __signal_filter(DBusConnection* conn, DBusMessage* mess
     DBusError error;
     dbus_error_init(&error);
 
-       //setting_main_appdata *ad = user_data;
        PluginNode* ad = (PluginNode*)user_data;
 
-       char* plugin_path = ad->plugin_path;
+       //char* plugin_path = ad->plugin_path;
+       char* plugin_path = s_plugin_path;
        char* pkg_name = get_app_string(plugin_path);
 
        if (pkg_name == NULL)
@@ -441,6 +432,8 @@ int setting_dbus_handler_init(void* user_data)
                bus = NULL;
                return -1;
        }
+       PluginNode* temp = (PluginNode*)user_data;
+       s_plugin_path = temp->plugin_path;
 
        if (dbus_connection_add_filter(bus, __signal_filter, user_data, NULL) == FALSE)
        {
@@ -520,12 +513,10 @@ static void ___click_softkey_back_cb(void *data, Evas_Object *obj,
        ret_if(!data);
 
        PluginNode* node = (PluginNode*)data;
+
        Draw_Data *pd = node->pd;
 
-       if (node->navi_bar)
-       {
-               elm_naviframe_item_pop(node->navi_bar);
-       }
+       Evas_Object* temp = node->navi_bar;
 
        ui_gadget_h ug = node->ug;
        setting_plugin_destroy(node);
@@ -534,10 +525,20 @@ static void ___click_softkey_back_cb(void *data, Evas_Object *obj,
        pd->cfg_file = NULL;
        pd->root = NULL;
 
+#if 0
+       if (temp)
+       {
+               elm_naviframe_item_pop(temp);
+       }
+#endif
        // ug --> destroy
        if(ug)
        {
+               SETTING_TRACE(" before ug_destory me ----<<<<<< ");
                ug_destroy_me(ug);
+               SETTING_TRACE(" after ug_destory me ----<<<<<< ");
+       } else {
+               SETTING_TRACE(" UG is NULL  now ----<<<<<< ");
        }
 }
 
@@ -1598,6 +1599,7 @@ int setting_plugin_load(PluginNode* node, const char *cfg_file)
        // re-add filter
        if (dbus_connection_add_filter(bus, __signal_filter, user_data, NULL) == FALSE)
        {
+               SETTING_TRACE("Fail to add filter ----- ");
                dbus_bus_remove_match(bus, rule, &error);
                dbus_error_free(&error);
                dbus_connection_close(bus);