ecore-evas: check for internal evas presence before using it during free
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 29 May 2019 13:23:18 +0000 (09:23 -0400)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 3 Jun 2019 07:01:26 +0000 (16:01 +0900)
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

index 3ff53d6..5c933f1 100644 (file)
@@ -3633,7 +3633,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;
@@ -3674,7 +3679,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;
    //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas