From 9f3de5e34622fbea719a9d21350ad68fab6347c1 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 25 Nov 2016 11:13:11 -0600 Subject: [PATCH] Fix wayland deferred buffer free crash We'd sometimes get a stale pointer when doing a deferred buffer free. --- src/bin/e_pixmap.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index 0c3b7d340..3f166d7d3 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -781,14 +781,13 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache) break; case E_PIXMAP_TYPE_WL: #ifdef HAVE_WAYLAND + _e_pixmap_wl_buffers_free(cp); if (cache) { E_Comp_Wl_Client_Data *cd; struct wl_resource *cb; Eina_List *free_list; - if (!e_comp->rendering) _e_pixmap_wl_buffers_free(cp); - if ((!cp->client) || (!cp->client->comp_data)) return; cd = (E_Comp_Wl_Client_Data *)cp->client->comp_data; @@ -803,8 +802,6 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache) wl_resource_destroy(cb); } } - else - _e_pixmap_wl_buffers_free(cp); #endif break; default: