compositor: Remove compositor field from E_Surface 92/320492/1
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 17 Jan 2025 06:38:13 +0000 (15:38 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 4 Mar 2025 08:08:34 +0000 (17:08 +0900)
No need for E_Surface to reference compositor since E_Compositor is
singleton instance.

Change-Id: I63394cd0a4afcfe7f61fb47dcc251ea431c3e953

src/bin/server/e_compositor.c

index ecf43cbfe107e20a94340058ed4159c2fd2b772a..8e8fad577e5d2b743062011f905f0183ae90b8fe 100644 (file)
@@ -59,7 +59,6 @@ struct _E_Surface
 {
    E_Comp_Wl_Client_Data base;
 
-   E_Compositor *compositor;
    E_Client *ec;
    struct ds_surface *ds_surface;
    struct ds_surface_viewport *surface_viewport;
@@ -848,12 +847,10 @@ _e_surface_exported_surface_unset(E_Surface *surface)
 
    ELOGF("SURFACE", "Remove exportd ID(%d) from E_Surface(%p)", surface->ec, id, surface);
 
-   if (surface->compositor)
+   if (!eina_hash_del(e_compositor->exported_surfaces, &id, surface))
      {
-        if (!eina_hash_del(surface->compositor->exported_surfaces, &id, surface))
-          ERR("Failed to remove given id(%d) and surface(%p) from exported_surfaces(%p)",
-              id, surface, surface->compositor->exported_surfaces);
-        surface->compositor = NULL;
+        ERR("Failed to remove given id(%d) and surface(%p) from exported_surfaces(%p)",
+            id, surface, e_compositor->exported_surfaces);
      }
 
    wl_list_remove(&surface->exported_surface_destroy.link);
@@ -879,7 +876,6 @@ _e_surface_exported_surface_set(E_Surface *surface, struct ds_tizen_exported_sur
 static void
 _e_compositor_cb_new_exported_surface(struct wl_listener *listener, void *data)
 {
-   E_Compositor *compositor = wl_container_of(listener, compositor, new_exported_surface);
    struct ds_tizen_exported_surface *exported_surface = data;
    struct ds_surface *ds_surface = ds_tizen_exported_surface_get_surface(exported_surface);
    E_Surface *surface = _e_surface_from_ds_surface(ds_surface);
@@ -889,8 +885,7 @@ _e_compositor_cb_new_exported_surface(struct wl_listener *listener, void *data)
 
    _e_surface_exported_surface_set(surface, exported_surface);
 
-   surface->compositor = compositor;
-   eina_hash_add(compositor->exported_surfaces, &id, surface);
+   eina_hash_add(e_compositor->exported_surfaces, &id, surface);
 }
 
 static Eina_Bool
@@ -924,7 +919,7 @@ _e_compositor_surface_exporter_finalize(E_Compositor *comp)
 
    iter = eina_hash_iterator_data_new(comp->exported_surfaces);
    EINA_ITERATOR_FOREACH(iter, surface)
-      surface->compositor = NULL;
+      _e_surface_exported_surface_unset(surface);
    eina_iterator_free(iter);
    eina_hash_free(comp->exported_surfaces);