diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-05-02 16:48:43 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-05-02 16:48:43 +0900 |
commit | c8def7a756a3f4c7189c846d7742fa0e4a0a1edb (patch) | |
tree | 6cc948d4aca308d09fa92ba78f8aeb5a0d1363e6 | |
parent | f8c9a8d16708ac52195a8df70493a1fc91872348 (diff) | |
download | efl-c8def7a756a3f4c7189c846d7742fa0e4a0a1edb.tar.gz |
SCREW YOU GIT!... here is my fix for jack daniels leak!
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 14 |
1 files changed, 14 insertions, 0 deletions
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) |