diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-03-10 11:46:18 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2016-03-10 11:46:18 -0500 |
commit | e49657eed0aa500503eda65195683862637ceb55 (patch) | |
tree | e3c3ad03632a42c693e119cc662924067b90acd3 | |
parent | 53d64276b48463ac7d8ee0d9ac673b8bf80173cf (diff) | |
download | enlightenment-e49657eed0aa500503eda65195683862637ceb55.tar.gz |
ensure pointer lifetimes when advancing efx effect queue
CIDs 1352853, 1352852, 1352851, 1352850, 1352849, 1352848, 1352847
-rw-r--r-- | src/bin/efx/e_efx_private.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/bin/efx/e_efx_private.h b/src/bin/efx/e_efx_private.h index 4b5e6a5c44..95e942253b 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); |