mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 16:53:45 +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:
parent
46a246e79b
commit
348bef46b7
3 changed files with 3 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue