make sure we clean temporary objects - make some notes too.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 20 Mar 2012 08:08:42 +0000 (08:08 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 20 Mar 2012 08:08:42 +0000 (08:08 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@69522 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_render.c

index e56c807..c23cdee 100644 (file)
@@ -1687,6 +1687,7 @@ evas_render_updates_internal(Evas *e,
    e->framespace.changed = 0;
    e->invalidate = 0;
 
+   // always clean... lots of mem waste!
    /* If their are some object to restack or some object to delete,
     * it's useless to keep the render object list around. */
    if (clean_them)
@@ -1696,6 +1697,17 @@ evas_render_updates_internal(Evas *e,
         eina_array_clean(&e->restack_objects);
         eina_array_clean(&e->delete_objects);
         eina_array_clean(&e->obscuring_objects);
+        eina_array_clean(&e->temporary_objects);
+        eina_array_clean(&e->clip_changes);
+/* we should flush here and have a mempool system for this        
+        eina_array_flush(&e->active_objects);
+        eina_array_flush(&e->render_objects);
+        eina_array_flush(&e->restack_objects);
+        eina_array_flush(&e->delete_objects);
+        eina_array_flush(&e->obscuring_objects);
+        eina_array_flush(&e->temporary_objects);
+        eina_array_flush(&e->clip_changes);
+ */
         e->invalidate = 1;
      }
 
@@ -1771,11 +1783,14 @@ evas_render_idle_flush(Evas *e)
        (e->engine.data.output))
      e->engine.func->output_idle_flush(e->engine.data.output);
 
-   eina_array_flush(&e->delete_objects);
    eina_array_flush(&e->active_objects);
-   eina_array_flush(&e->restack_objects);
    eina_array_flush(&e->render_objects);
+   eina_array_flush(&e->restack_objects);
+   eina_array_flush(&e->delete_objects);
+   eina_array_flush(&e->obscuring_objects);
+   eina_array_flush(&e->temporary_objects);
    eina_array_flush(&e->clip_changes);
+   eina_array_flush(&e->temporary_objects);
 
    e->invalidate = 1;
 }