zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2cf3dc7a39c938b97e6fcf16d8ea06374eeb7536

commit 2cf3dc7a39c938b97e6fcf16d8ea06374eeb7536
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed May 29 09:23:18 2019 -0400

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

-- 


Reply via email to