discomfitor pushed a commit to branch master.

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

commit e49657eed0aa500503eda65195683862637ceb55
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Mar 10 11:46:18 2016 -0500

    ensure pointer lifetimes when advancing efx effect queue
    
    CIDs 1352853, 1352852, 1352851, 1352850, 1352849, 1352848, 1352847
---
 src/bin/efx/e_efx_private.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/bin/efx/e_efx_private.h b/src/bin/efx/e_efx_private.h
index 4b5e6a5..95e9422 100644
--- a/src/bin/efx/e_efx_private.h
+++ b/src/bin/efx/e_efx_private.h
@@ -98,11 +98,12 @@ void e_efx_fade_reclip(void *efd);
 
 #define E_EFX_QUEUE_CHECK(X) do \
    { \
-      Eina_Bool run; \
       E_EFX *ee = (X)->e; \
-      run = e_efx_queue_complete((X)->e, (X)); \
+      evas_object_ref(ee->obj); \
       if ((X)->cb) (X)->cb((X)->data, &(X)->e->map_data, (X)->e->obj); \
-      if (run) e_efx_queue_process(ee); \
+      if (e_efx_queue_complete((X)->e, (X))) \
+        e_efx_queue_process(ee); \
+      evas_object_unref(ee->obj); \
    } while (0)
 Eina_Bool e_efx_queue_complete(E_EFX *e, void *effect_data);
 void e_efx_queue_process(E_EFX *e);

-- 


Reply via email to