[ros-diffs] [tkreuzer] 55970: [WIN32K] - Fix a memory leak in EngUnloadImage - add an ASSERT

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Mar 3 20:00:51 UTC 2012


Author: tkreuzer
Date: Sat Mar  3 20:00:51 2012
New Revision: 55970

URL: http://svn.reactos.org/svn/reactos?rev=55970&view=rev
Log:
[WIN32K]
- Fix a memory leak in EngUnloadImage
- add an ASSERT

Modified:
    trunk/reactos/subsystems/win32/win32k/eng/ldevobj.c
    trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c

Modified: trunk/reactos/subsystems/win32/win32k/eng/ldevobj.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/ldevobj.c?rev=55970&r1=55969&r2=55970&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/ldevobj.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/ldevobj.c [iso-8859-1] Sat Mar  3 20:00:51 2012
@@ -98,6 +98,7 @@
 {
     /* Make sure we don't have a driver loaded */
     ASSERT(pldev && pldev->pGdiDriverInfo == NULL);
+    ASSERT(pldev->cRefs == 0);
 
     /* Free the memory */
     ExFreePoolWithTag(pldev, GDITAG_LDEV);
@@ -472,8 +473,9 @@
         if (pldev->pldevNext)
             pldev->pldevNext->pldevPrev = pldev->pldevPrev;
 
-        /* Unload the image */
+        /* Unload the image and free the LDEV */
         LDEVOBJ_vUnloadImage(pldev);
+        LDEVOBJ_vFreeLDEV(pldev);
     }
 
     /* Unlock loader */

Modified: trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c?rev=55970&r1=55969&r2=55970&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] Sat Mar  3 20:00:51 2012
@@ -190,7 +190,7 @@
 {
     PGRAPHICS_DEVICE pGraphicsDevice;
     PDEVMODEW pdmCurrent;
-    INT i;
+    ULONG i;
     DWORD dwFields;
 
     pGraphicsDevice = ppdev->pGraphicsDevice;




More information about the Ros-diffs mailing list