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
This commit is contained in:
Carsten Haitzler 2018-12-03 15:50:02 +00:00 committed by Christopher Michael
parent 8c32f8bb22
commit fc7acd0e38
1 changed files with 6 additions and 2 deletions

View File

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