Author: jgardou Date: Mon Sep 22 14:33:06 2014 New Revision: 64226
URL: http://svn.reactos.org/svn/reactos?rev=64226&view=rev Log: [WIN32K] - Add some debug prints helping diagnosing which GDI objects are locked when they should not be. - Plug a region (lock) leak - Remove some dead code.
Modified: trunk/reactos/win32ss/gdi/ntgdi/gdidebug.h trunk/reactos/win32ss/gdi/ntgdi/region.c trunk/reactos/win32ss/user/ntuser/vis.c
Modified: trunk/reactos/win32ss/gdi/ntgdi/gdidebug.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/gdidebug.... ============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/gdidebug.h [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/gdidebug.h [iso-8859-1] Mon Sep 22 14:33:06 2014 @@ -80,8 +80,11 @@ PTHREADINFO pti = (PTHREADINFO)PsGetCurrentThreadWin32Thread(); if (pti && pti->cExclusiveLocks != 0) { + ULONG i; DbgPrint("(%s:%lu) There are %lu exclusive locks!\n", pszFile, nLine, pti->cExclusiveLocks); + for (i = 0; i < (GDIObjTypeTotal + 1); i++) + DbgPrint(" Type %u: %u.\n", i, pti->acExclusiveLockCount[i]); ASSERT(FALSE); } }
Modified: trunk/reactos/win32ss/gdi/ntgdi/region.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/region.c?... ============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/region.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/region.c [iso-8859-1] Mon Sep 22 14:33:06 2014 @@ -3847,10 +3847,6 @@
RGNOBJAPI_Unlock(prgn); return ret; - - - RGNOBJAPI_Unlock(prgn); - return FALSE; }
BOOL
Modified: trunk/reactos/win32ss/user/ntuser/vis.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/vis.c?r... ============================================================================== --- trunk/reactos/win32ss/user/ntuser/vis.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/vis.c [iso-8859-1] Mon Sep 22 14:33:06 2014 @@ -116,6 +116,7 @@ IntGdiOffsetRgn(ClipRgn, -CurrentWindow->rcWindow.left, -CurrentWindow->rcWindow.top); IntGdiCombineRgn(ClipRgn, ClipRgn, CurrentRgnClip, RGN_AND); IntGdiOffsetRgn(ClipRgn, CurrentWindow->rcWindow.left, CurrentWindow->rcWindow.top); + RGNOBJAPI_Unlock(CurrentRgnClip); } } IntGdiCombineRgn(VisRgn, VisRgn, ClipRgn, RGN_DIFF);