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
This commit is contained in:
Mike Blumenkrantz 2019-05-29 09:23:18 -04:00
parent f8c8f9c16c
commit 2cf3dc7a39
1 changed files with 6 additions and 2 deletions

View File

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