e_compositor: Remove obsolete implementation 93/316393/1
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 20 Aug 2024 03:20:56 +0000 (12:20 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 20 Aug 2024 23:51:18 +0000 (08:51 +0900)
There is no need to add destroy listener to wl_callback resource because
it's already covered all the points when it should destroy wl_callback.

Change-Id: Id3a9de1574c7ded65d98edc9523c90409b218824

src/bin/server/e_comp_wl.c
src/bin/server/e_comp_wl_intern.h
src/bin/server/e_compositor.c

index cd2665accb112b8333f226d73410ebacba738f8c..13755eb3acd407c2206bf8d93016e8a72a48bfa0 100644 (file)
@@ -6199,40 +6199,6 @@ e_comp_wl_client_surface_pending_input_region_set(E_Client *ec, Eina_Tiler *regi
      }
 }
 
-EINTERN void
-e_comp_wl_client_surface_pending_frame_callback_add(E_Client *ec, struct wl_resource *callback_resource)
-{
-   ec->comp_data->pending.frames = eina_list_prepend(ec->comp_data->pending.frames, callback_resource);
-}
-
-EINTERN void
-e_comp_wl_client_surface_frame_callback_remove(E_Client *ec, struct wl_resource *callback_resource)
-{
-   E_Comp_Wl_Subsurf_Data *sdata;
-
-   if (!ec->comp_data)
-     return;
-
-   if (ec->comp_data->frames)
-     {
-        ec->comp_data->frames =
-           eina_list_remove(ec->comp_data->frames, callback_resource);
-     }
-
-   if (ec->comp_data->pending.frames)
-     {
-        ec->comp_data->pending.frames =
-           eina_list_remove(ec->comp_data->pending.frames, callback_resource);
-     }
-
-   sdata = ec->comp_data->sub.data;
-   if ((sdata) && (sdata->cached.frames))
-     {
-        sdata->cached.frames =
-           eina_list_remove(sdata->cached.frames, callback_resource);
-     }
-}
-
 EINTERN void
 e_comp_wl_client_surface_pending_commit(E_Client *ec)
 {
index d8480f782af231679662cf82238b24831aeef9cd..ee94a67a90f0f49807faf07938752d75ef9e6154 100644 (file)
@@ -93,8 +93,6 @@ EINTERN void e_comp_wl_client_surface_finish(E_Client *ec);
 EINTERN void e_comp_wl_client_surface_pending_buffer_set(E_Client *ec, E_Comp_Wl_Buffer *buffer, int32_t sx, int32_t sy);
 EINTERN void e_comp_wl_client_surface_pending_opaque_region_set(E_Client *ec, Eina_Tiler *region);
 EINTERN void e_comp_wl_client_surface_pending_input_region_set(E_Client *ec, Eina_Tiler *region);
-EINTERN void e_comp_wl_client_surface_pending_frame_callback_add(E_Client *ec, struct wl_resource *callback_resource);
-EINTERN void e_comp_wl_client_surface_frame_callback_remove(E_Client *ec, struct wl_resource *callback_resource);
 EINTERN void e_comp_wl_client_surface_pending_commit(E_Client *ec);
 
 EINTERN Eina_Bool e_comp_wl_client_subsurface_cyclic_reference_check(E_Client *ec, E_Client *parent);
index 6232f68f558971e246aa265115de136bd033c04e..0a1021fc6af40b63cf0be0ded56f79f49f4ca22f 100644 (file)
@@ -20,7 +20,6 @@
 typedef struct _E_Compositor E_Compositor;
 typedef struct _E_Subsurface E_Subsurface;
 typedef struct _E_Subsurface_View E_Subsurface_View;
-typedef struct _E_Frame_Callback E_Frame_Callback;
 
 struct _E_Compositor
 {
@@ -626,6 +625,7 @@ e_surface_frame_done_send(E_Surface *surface)
      {
         wl_callback_send_done(resource, (unsigned int)(ecore_loop_time_get() * 1000));
         wl_resource_destroy(resource);
+        surface->base.frames = eina_list_remove_list(surface->base.frames, l);
      }
 }
 
@@ -1171,42 +1171,18 @@ _e_surface_pending_buffer_scale_update(E_Surface *surface)
    surface->base.pending.buffer_viewport.changed = 1;
 }
 
-static void
-_frame_callback_cb_destroy(struct wl_listener *listener, void *data)
-{
-   struct wl_resource *resource = data;
-   E_Frame_Callback *frame_callback;
-
-   frame_callback = wl_container_of(listener, frame_callback, destroy);
-   e_comp_wl_client_surface_frame_callback_remove(frame_callback->ec, resource);
-   e_object_unref(E_OBJECT(frame_callback->ec));
-   free(frame_callback);
-}
-
 static void
 _e_surface_pending_frame_callback_update(E_Surface *surface)
 {
    struct ds_surface *ds_surface = surface->ds_surface;
-   E_Client *ec = surface->ec;
-   E_Frame_Callback *frame_callback;
-   struct wl_resource *resource;
+   struct wl_resource *resource, *tmp;
 
-   wl_resource_for_each(resource, &ds_surface->current.frame_callback_list)
+   wl_resource_for_each_safe(resource, tmp, &ds_surface->current.frame_callback_list)
      {
-        frame_callback = E_NEW(E_Frame_Callback, 1);
-        if (!frame_callback)
-          continue;
-
-        e_object_ref(E_OBJECT(ec));
-        frame_callback->ec = ec;
-
-        frame_callback->destroy.notify = _frame_callback_cb_destroy;
-        wl_resource_add_destroy_listener(resource, &frame_callback->destroy);
-
-        e_comp_wl_client_surface_pending_frame_callback_add(ec, resource);
+        wl_list_remove(wl_resource_get_link(resource));
+        wl_list_init(wl_resource_get_link(resource));
+        surface->base.pending.frames = eina_list_prepend(surface->base.pending.frames, resource);
      }
-
-   wl_list_init(&ds_surface->current.frame_callback_list);
 }
 
 static void