From 70f443d8a8e1dcf9e9f163190ffc228ace6660de Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 29 Aug 2013 14:58:09 +0900 Subject: [PATCH] evas - avoid memleak on rotation of tilebuf in engine for gl and sw possibly. --- src/modules/evas/engines/gl_x11/evas_engine.c | 1 + src/modules/evas/engines/software_x11/evas_engine.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 82f97d64a6..cda7fe7e6f 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -1003,6 +1003,7 @@ eng_setup(Evas *eo_e, void *in) free(re); return 0; } + if (re->tb) evas_common_tilebuf_free(re->tb); re->tb = evas_common_tilebuf_new(re->win->w, re->win->h); if (!re->tb) { diff --git a/src/modules/evas/engines/software_x11/evas_engine.c b/src/modules/evas/engines/software_x11/evas_engine.c index d5fbe66104..4a1bf4b45b 100644 --- a/src/modules/evas/engines/software_x11/evas_engine.c +++ b/src/modules/evas/engines/software_x11/evas_engine.c @@ -188,6 +188,7 @@ _output_xlib_setup(int w, int h, int rot, Display *disp, Drawable draw, // re->ob->onebuf = 1; evas_software_xlib_outbuf_debug_set(re->ob, debug); + if (re->tb) evas_common_tilebuf_free(re->tb); re->tb = evas_common_tilebuf_new(w, h); if (!re->tb) { @@ -227,6 +228,7 @@ _output_swapbuf_setup(int w, int h, int rot, Display *disp, Drawable draw, return NULL; } + if (re->tb) evas_common_tilebuf_free(re->tb); re->tb = evas_common_tilebuf_new(w, h); if (!re->tb) { @@ -278,6 +280,7 @@ _output_xcb_setup(int w, int h, int rot, xcb_connection_t *conn, evas_software_xcb_outbuf_debug_set(re->ob, debug); + if (re->tb) evas_common_tilebuf_free(re->tb); re->tb = evas_common_tilebuf_new(w, h); if (!re->tb) {