derekf pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9f3de5e34622fbea719a9d21350ad68fab6347c1

commit 9f3de5e34622fbea719a9d21350ad68fab6347c1
Author: Derek Foreman <[email protected]>
Date:   Fri Nov 25 11:13:11 2016 -0600

    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 0c3b7d3..3f166d7 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:

-- 


Reply via email to