e_hwc_window_queue: unset callback of wait usable before the buffers retrieve is... 54/270654/1 accepted/tizen/unified/20220209.131808 submit/tizen/20220208.025455
authorChangyeon Lee <cyeon.lee@samsung.com>
Mon, 7 Feb 2022 06:16:00 +0000 (15:16 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Mon, 7 Feb 2022 08:26:30 +0000 (17:26 +0900)
callback of wait usable was not unset in _e_hwc_window_queue_prepare_unset
because cqueue of hwc_window was set to null in _e_hwc_window_queue_buffers_retrieve.

Change-Id: I5fb68ea20cec54a454add03c48701f1fd9530423

src/bin/e_hwc_window_queue.c

index 0dbce02..0d0e9cb 100644 (file)
@@ -970,19 +970,17 @@ _e_hwc_window_queue_prepare_unset(E_Hwc_Window_Queue *queue)
    tbm_surface_h tsurface;
    E_Hwc_Window_Queue_Buffer *queue_buffer;
 
-   /* queue retrieve the buffers from the hwc_window */
-   _e_hwc_window_queue_buffers_retrieve(queue, queue->user);
-
    tbm_surface_queue_remove_dequeuable_cb(queue->tqueue,
                                           _e_hwc_window_queue_cb_dequeueable,
                                           (void *)queue);
 
-   if (!hwc_window) return;
-
-   if (hwc_window->cqueue)
+   if ((hwc_window) && (hwc_window->cqueue))
      wayland_tbm_server_client_queue_set_wait_usable_cb(hwc_window->cqueue, NULL, NULL);
 
-   if(!hwc_window->ec) return;
+   /* queue retrieve the buffers from the hwc_window */
+   _e_hwc_window_queue_buffers_retrieve(queue, queue->user);
+
+   if ((!hwc_window) || (!hwc_window->ec)) return;
 
    if ((!evas_object_visible_get(hwc_window->ec->frame)) &&
        (hwc_window->ec->exp_iconify.buffer_flush) &&