Fix a bug about releasing toolkit handles 17/174617/3
authorJunghoon Park <jh9216.park@samsung.com>
Tue, 3 Apr 2018 07:39:29 +0000 (16:39 +0900)
committerSemun Lee <semun.lee@samsung.com>
Tue, 3 Apr 2018 09:53:28 +0000 (09:53 +0000)
- The toolkit callback shouldn't be freed in the screen connector callbacks
- Require:
  https://review.tizen.org/gerrit/#/c/174618/

Change-Id: I4f3b56086e4520c19d97431079cc49c9759b0a80
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
watch-control/src/control.c

index a1f408b..340ff5e 100755 (executable)
@@ -413,6 +413,13 @@ static void __screen_connector_toolkit_evas_added_cb(const char *appid, const ch
        __change_viewer_visibility(__viewer_visibility, false);
 }
 
+static gboolean __remove_toolkit(gpointer user_data)
+{
+       screen_connector_toolkit_evas_remove(
+                       (screen_connector_toolkit_evas_h)user_data);
+       return G_SOURCE_REMOVE;
+}
+
 static void __screen_connector_toolkit_evas_removed_cb(const char *appid, const char *instance_id, int pid,
        Evas_Object *image, void *data)
 {
@@ -424,16 +431,16 @@ static void __screen_connector_toolkit_evas_removed_cb(const char *appid, const
        if (cur_image == image) {
                evas_object_data_set(__win, "tbm,watch", NULL);
                if (__toolkit)
-                       screen_connector_toolkit_evas_remove(__toolkit);
+                       g_idle_add(__remove_toolkit, __toolkit);
                if (__rid_toolkit)
-                       screen_connector_toolkit_evas_remove(__rid_toolkit);
+                       g_idle_add(__remove_toolkit, __rid_toolkit);
                __toolkit = NULL;
                __rid_toolkit = NULL;
                __is_bound = false;
        }
 
        if (__tmp_toolkit) {
-               screen_connector_toolkit_evas_remove(__tmp_toolkit);
+               g_idle_add(__remove_toolkit, __tmp_toolkit);
                __tmp_toolkit = NULL;
        }
 }