From ad861e9eababda9818403e9347303225c90010d7 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Mon, 1 Apr 2013 18:39:50 +0900 Subject: [PATCH] evas: call Eina_Cow garbage collector on surface dump. --- src/lib/evas/canvas/evas_render.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 0bd677d254..f643b78595 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2150,7 +2150,7 @@ evas_render_idle_flush(Evas *eo_e) } void -_canvas_render_idle_flush(Eo *eo_e, void *_pd, va_list *list EINA_UNUSED) +_canvas_render_idle_flush(Eo *eo_e, void *_pd, va_list *list) { Evas_Public_Data *e = _pd; @@ -2240,6 +2240,16 @@ _canvas_render_dump(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) if ((e->engine.func) && (e->engine.func->output_dump) && (e->engine.data.output)) e->engine.func->output_dump(e->engine.data.output); + +#define GC_ALL(Cow) \ + while (eina_cow_gc(Cow)) \ + ; + + GC_ALL(evas_object_proxy_cow); + GC_ALL(evas_object_map_cow); + GC_ALL(evas_object_image_pixels_cow); + GC_ALL(evas_object_image_load_opts_cow); + GC_ALL(evas_object_image_state_cow); } void