summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-05-02 16:48:43 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-05-02 16:48:43 +0900
commitc8def7a756a3f4c7189c846d7742fa0e4a0a1edb (patch)
tree6cc948d4aca308d09fa92ba78f8aeb5a0d1363e6
parentf8c9a8d16708ac52195a8df70493a1fc91872348 (diff)
downloadefl-c8def7a756a3f4c7189c846d7742fa0e4a0a1edb.tar.gz
SCREW YOU GIT!... here is my fix for jack daniels leak!
-rw-r--r--src/lib/evas/canvas/evas_render.c14
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)