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 *

-- 


Reply via email to