Author: tkreuzer
Date: Thu Apr 26 21:48:06 2012
New Revision: 56433

URL: http://svn.reactos.org/svn/reactos?rev=56433&view=rev
Log:
[WIN32K]
- add missing  DBG_DECREASE_LOCK_COUNT() when deleting an object that was 
exclusively locked. Fixes strange hang in comctl32_winetest.
The question is: why does changing a variable, which is never checked cause 
such trouble?
- Don't pass the DC's clip object to IntEngCopyBits, when querying a pixel
- make acExclusiveLockCount[] 0x20 bytes long, just to be really sure, that (x 
& 0x1F) does never overflow it.

Modified:
    trunk/reactos/win32ss/gdi/ntgdi/bitblt.c
    trunk/reactos/win32ss/gdi/ntgdi/gdiobj.c
    trunk/reactos/win32ss/user/ntuser/win32.h

Modified: trunk/reactos/win32ss/gdi/ntgdi/bitblt.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/bitblt.c?rev=56433&r1=56432&r2=56433&view=diff
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] Thu Apr 26 21:48:06 
2012
@@ -1156,7 +1156,7 @@
             /* Call the copy bits function */
             bResult = IntEngCopyBits(&psurfDest->SurfObj,
                                      &psurfSrc->SurfObj,
-                                     pdc->rosdc.CombinedClip,
+                                     NULL,
                                      &exlo.xlo,
                                      &rclDest,
                                      &ptlSrc);

Modified: trunk/reactos/win32ss/gdi/ntgdi/gdiobj.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/gdiobj.c?rev=56433&r1=56432&r2=56433&view=diff
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/gdiobj.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/gdiobj.c [iso-8859-1] Thu Apr 26 21:48:06 
2012
@@ -880,6 +880,7 @@
             /* Release the pushlock and reenable APCs */
             ExReleasePushLockExclusive(&pobj->pushlock);
             KeLeaveCriticalRegion();
+            DBG_DECREASE_LOCK_COUNT(PsGetCurrentProcessWin32Process(), 
pobj->hHmgr);
         }
     }
 

Modified: trunk/reactos/win32ss/user/ntuser/win32.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/win32.h?rev=56433&r1=56432&r2=56433&view=diff
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/win32.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/win32.h [iso-8859-1] Thu Apr 26 21:48:06 
2012
@@ -108,7 +108,7 @@
     SINGLE_LIST_ENTRY  ReferencesList;
     ULONG cExclusiveLocks;
 #if DBG
-    USHORT acExclusiveLockCount[GDIObjTypeTotal];
+    USHORT acExclusiveLockCount[GDIObjTypeTotal + 1];
 #endif
 
 } THREADINFO;


Reply via email to