diff --git a/legacy/ecore/src/lib/ecore_directfb/ecore_directfb.c b/legacy/ecore/src/lib/ecore_directfb/ecore_directfb.c index ba5d2c8d64..ce4bb76db4 100644 --- a/legacy/ecore/src/lib/ecore_directfb/ecore_directfb.c +++ b/legacy/ecore/src/lib/ecore_directfb/ecore_directfb.c @@ -518,6 +518,7 @@ ecore_directfb_window_del(Ecore_DirectFB_Window *ecore_window) { DFBCHECK(ecore_window->surface->Release(ecore_window->surface)); DFBCHECK(ecore_window->window->Release(ecore_window->window)); + free(ecore_window); } diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c index 29057c20cc..c3b1b1eca5 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c @@ -336,9 +336,8 @@ _ecore_evas_directfb_init(void) static void _ecore_evas_directfb_free(Ecore_Evas *ee) { - ecore_directfb_window_del(ee->engine.directfb.window); - free(ee->engine.directfb.window); ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee); + ecore_directfb_window_del(ee->engine.directfb.window); ecore_evases = _ecore_list2_remove(ecore_evases, ee); _ecore_evas_directfb_shutdown(); ecore_directfb_shutdown();