Fix a bug about releasing handle 18/174618/3
authorJunghoon Park <jh9216.park@samsung.com>
Tue, 3 Apr 2018 07:42:06 +0000 (16:42 +0900)
committerSemun Lee <semun.lee@samsung.com>
Tue, 3 Apr 2018 08:28:00 +0000 (08:28 +0000)
- The handle should be freed in the function

Change-Id: Ia8393ce8e09281c823715364b705c1f91e501bd5
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
screen_connector_watcher_evas/src/screen_connector_toolkit_evas.cc

index 5ff61b9b52e9de03c81bc61083202d112be97771..764f1fa78d09865df43ba096fa1ade939f685250 100644 (file)
@@ -178,21 +178,17 @@ screen_connector_toolkit_evas_add(screen_connector_toolkit_evas_ops* ops,
 
 extern "C" EXPORT_API int
 screen_connector_toolkit_evas_remove(screen_connector_toolkit_evas_h handle) {
-  g_idle_add([](gpointer user_data)->gboolean {
-    RemoteSurfaceEvasStub* rs = static_cast<RemoteSurfaceEvasStub*>(user_data);
+  RemoteSurfaceEvasStub* rs = static_cast<RemoteSurfaceEvasStub*>(handle);
 
-    for (int i = SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET;
-        i <= SCREEN_CONNECTOR_SCREEN_TYPE_ALL; i++) {
-      auto sci = __connectors.find(i);
+  for (int i = SCREEN_CONNECTOR_SCREEN_TYPE_WIDGET;
+      i <= SCREEN_CONNECTOR_SCREEN_TYPE_ALL; i++) {
+    auto sci = __connectors.find(i);
 
-      if (sci == __connectors.end())
-        continue;
+    if (sci == __connectors.end())
+      continue;
 
-      __connectors[i]->Remove(rs);
-    }
-
-    return G_SOURCE_REMOVE;
-  }, handle);
+    __connectors[i]->Remove(rs);
+  }
 
   return 0;
 }