From c8def7a756a3f4c7189c846d7742fa0e4a0a1edb Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 2 May 2013 16:48:43 +0900 Subject: [PATCH] SCREW YOU GIT!... here is my fix for jack daniels leak! --- src/lib/evas/canvas/evas_render.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 830af0b6a9..6db7a29e6a 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1901,6 +1901,20 @@ evas_render_updates_internal(Evas *eo_e, e->invalidate = EINA_TRUE; } + /* delete all objects flagged for deletion now */ + for (i = 0; i < e->delete_objects.count; ++i) + { + obj = eina_array_data_get(&e->delete_objects, i); + eo_obj = obj->object; + evas_object_free(eo_obj, 1); + } + eina_array_clean(&e->delete_objects); + /* if we deleted no objects this frame or we deleted a lot (> 1024) then + * try and reset the deleted objects array to empty (no mem used) for + * efficiency */ + if ((e->delete_objects.count == 0) || (e->delete_objects.count > 1024)) + eina_array_flush(&e->delete_objects); + evas_module_clean(); if (!do_async)