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…
==============================================================================
--- 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…
==============================================================================
--- 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.…
==============================================================================
--- 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;