From e629c76ecdc3994b6b3ed6bf5aa41208f7056342 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 29 Aug 2012 05:18:27 +0000 Subject: [PATCH] ecore: fix leak of evas_render_update list. SVN revision: 75807 --- legacy/ecore/ChangeLog | 4 ++++ legacy/ecore/NEWS | 1 + legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c | 5 ++--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/legacy/ecore/ChangeLog b/legacy/ecore/ChangeLog index 4fc56b00b6..d425d76f36 100644 --- a/legacy/ecore/ChangeLog +++ b/legacy/ecore/ChangeLog @@ -875,3 +875,7 @@ * Fix segmentation fault in ecore_thread on Windows as PHS was returning a wrong value. + +2012-08-29 Cedric Bail + + * Always call evas_render_update_free to prevent leak in Ecore_Evas X backend. diff --git a/legacy/ecore/NEWS b/legacy/ecore/NEWS index 4ebbb9db99..e208cd32d1 100644 --- a/legacy/ecore/NEWS +++ b/legacy/ecore/NEWS @@ -31,6 +31,7 @@ Fixes: - Correctly shutdown Ecore_Thread. - Fix usage of FD_SET and al. when fd_set pointers are NULL (Windows) - Fix ecore_thread seg fault on Windows where PHS() was returning a wrong value + - Always call evas_render_update_free to prevent leak in Ecore_Evas X bakcend. * ecore_x - Fix unitialized Ecore_X_Atom use. diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index b36ff0c2e6..bb95525030 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -307,7 +307,6 @@ _ecore_evas_x_render(Ecore_Evas *ee) { // ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask); } - evas_render_updates_free(updates); _ecore_evas_idle_timeout_update(ee); rend = 1; } @@ -380,7 +379,6 @@ _ecore_evas_x_render(Ecore_Evas *ee) ecore_x_xregion_free(ee->engine.x.damages); ee->engine.x.damages = NULL; } - evas_render_updates_free(updates); _ecore_evas_idle_timeout_update(ee); rend = 1; } @@ -401,13 +399,14 @@ _ecore_evas_x_render(Ecore_Evas *ee) { // ecore_x_window_shape_input_mask_set(ee->prop.window, ee->engine.x.mask); } - evas_render_updates_free(updates); _ecore_evas_idle_timeout_update(ee); rend = 1; } } else evas_norender(ee->evas); + evas_render_updates_free(updates); + if (ee->func.fn_post_render) ee->func.fn_post_render(ee); /* if (rend)