tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=07af170bd834ed8194fd0279f27b3b9c0cc7b950
commit 07af170bd834ed8194fd0279f27b3b9c0cc7b950 Author: Vincent Torri <vincent.to...@gmail.com> Date: Thu Jul 23 09:52:31 2015 +0200 Evas GDI engine: save the original bitmap into the memory DC This allows the memory DC to be killed and fix a memory leak @fix --- .../evas/engines/software_gdi/evas_gdi_buffer.c | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/modules/evas/engines/software_gdi/evas_gdi_buffer.c b/src/modules/evas/engines/software_gdi/evas_gdi_buffer.c index fe69d73..ab233dd 100644 --- a/src/modules/evas/engines/software_gdi/evas_gdi_buffer.c +++ b/src/modules/evas/engines/software_gdi/evas_gdi_buffer.c @@ -59,18 +59,21 @@ evas_software_gdi_output_buffer_paste(Gdi_Output_Buffer *gdiob, int y) { HDC dc; + HGDIOBJ obj; dc = CreateCompatibleDC(gdiob->dc); - if (!dc) - return; - SelectObject(dc, gdiob->bitmap); - BitBlt(gdiob->dc, - x, y, - gdiob->width, gdiob->height, - dc, - 0, 0, - SRCCOPY); - DeleteDC(dc); + if (dc) + { + obj = SelectObject(dc, gdiob->bitmap); + BitBlt(gdiob->dc, + x, y, + gdiob->width, gdiob->height, + dc, + 0, 0, + SRCCOPY); + SelectObject(dc, obj); + DeleteDC(dc); + } } DATA8 * --