mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 12:23:31 +00:00
[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. svn path=/trunk/; revision=56433
This commit is contained in:
@@ -1156,7 +1156,7 @@ NtGdiGetPixel(
|
||||
/* Call the copy bits function */
|
||||
bResult = IntEngCopyBits(&psurfDest->SurfObj,
|
||||
&psurfSrc->SurfObj,
|
||||
pdc->rosdc.CombinedClip,
|
||||
NULL,
|
||||
&exlo.xlo,
|
||||
&rclDest,
|
||||
&ptlSrc);
|
||||
|
||||
@@ -880,6 +880,7 @@ GDIOBJ_vDeleteObject(POBJ pobj)
|
||||
/* Release the pushlock and reenable APCs */
|
||||
ExReleasePushLockExclusive(&pobj->pushlock);
|
||||
KeLeaveCriticalRegion();
|
||||
DBG_DECREASE_LOCK_COUNT(PsGetCurrentProcessWin32Process(), pobj->hHmgr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ typedef struct _THREADINFO
|
||||
SINGLE_LIST_ENTRY ReferencesList;
|
||||
ULONG cExclusiveLocks;
|
||||
#if DBG
|
||||
USHORT acExclusiveLockCount[GDIObjTypeTotal];
|
||||
USHORT acExclusiveLockCount[GDIObjTypeTotal + 1];
|
||||
#endif
|
||||
|
||||
} THREADINFO;
|
||||
|
||||
Reference in New Issue
Block a user