From 07af170bd834ed8194fd0279f27b3b9c0cc7b950 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Thu, 23 Jul 2015 09:52:31 +0200 Subject: [PATCH] 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 * -- 2.7.4