From 2cf3dc7a39c938b97e6fcf16d8ea06374eeb7536 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 29 May 2019 09:23:18 -0400 Subject: [PATCH] ecore-evas: check for internal evas presence before using it during free Summary: some engines do not have an evas @fix Depends on D8971 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8972 --- src/lib/ecore_evas/ecore_evas.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 3d4698f599..599d7ec9e8 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3446,7 +3446,12 @@ _ecore_evas_free(Ecore_Evas *ee) } ee->animator_count = 0; - efl_event_callback_array_del(ee->evas, animator_watch(), ee); + /* not present in extn engine */ + if (ee->evas) + { + efl_event_callback_array_del(ee->evas, animator_watch(), ee); + efl_event_callback_array_del(ee->evas, _ecore_evas_device_cbs(), ee); + } if (ee->anim) ecore_animator_del(ee->anim); ee->anim = NULL; @@ -3487,7 +3492,6 @@ _ecore_evas_free(Ecore_Evas *ee) ecore_timer_del(ee->prop.wm_rot.manual_mode.timer); _ecore_evas_aux_hint_free(ee); ee->prop.wm_rot.manual_mode.timer = NULL; - efl_event_callback_array_del(ee->evas, _ecore_evas_device_cbs(), ee); eina_hash_free(ee->prop.cursors); ee->prop.cursors = NULL; evas_free(ee->evas);