From 2dc4bed587040a62537b21458e3e2d953fd15140 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Mon, 3 Dec 2018 15:50:02 +0000 Subject: [PATCH] ecore evas - buffer - init ecore event evas as many times as shutdown so ecore_event_evas_shutdown() was getting called much more than ecore_event_evas_init() - missing an init in the ee + img obj creator in ecore evas. this adds it in and ensures in allocation failures we dont over-init or shutdown too. @fix --- src/lib/ecore_evas/ecore_evas_buffer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_evas/ecore_evas_buffer.c b/src/lib/ecore_evas/ecore_evas_buffer.c index 173f33289f..8fea11a9f3 100644 --- a/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/src/lib/ecore_evas/ecore_evas_buffer.c @@ -20,6 +20,7 @@ _ecore_evas_buffer_free(Ecore_Evas *ee) { Ecore_Evas_Engine_Buffer_Data *bdata = ee->engine.data; + if (!bdata) return; if (bdata->image) { Ecore_Evas *ee2; @@ -31,11 +32,11 @@ _ecore_evas_buffer_free(Ecore_Evas *ee) } else { - bdata->free_func(bdata->data, - bdata->pixels); + bdata->free_func(bdata->data, bdata->pixels); } free(bdata); + ee->engine.data = NULL; ecore_event_evas_shutdown(); } @@ -895,6 +896,8 @@ ecore_evas_buffer_new(int w, int h) ee = ecore_evas_buffer_allocfunc_new (w, h, _ecore_evas_buffer_pix_alloc, _ecore_evas_buffer_pix_free, NULL); + if (!ee) ecore_event_evas_shutdown(); + ecore_evas_done(ee, EINA_TRUE); return ee; @@ -1084,5 +1087,6 @@ ecore_evas_object_image_new(Ecore_Evas *ee_target) } _ecore_evas_subregister(ee_target, ee); + ecore_event_evas_init(); return o; }