ensure pointer lifetimes when advancing efx effect queue

CIDs 1352853, 1352852, 1352851, 1352850, 1352849, 1352848, 1352847
This commit is contained in:
Mike Blumenkrantz 2016-03-10 11:46:18 -05:00
parent 53d64276b4
commit e49657eed0
1 changed files with 4 additions and 3 deletions

View File

@ -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);