[ros-diffs] [jgardou] 46470: [WIN32K] Lock PDC with pDevObj semaphore too.
jgardou at svn.reactos.org
jgardou at svn.reactos.org
Fri Mar 26 17:17:13 CET 2010
Author: jgardou
Date: Fri Mar 26 17:17:12 2010
New Revision: 46470
URL: http://svn.reactos.org/svn/reactos?rev=46470&view=rev
Log:
[WIN32K]
Lock PDC with pDevObj semaphore too.
Modified:
branches/reactos-yarotows/subsystems/win32/win32k/include/dc.h
branches/reactos-yarotows/subsystems/win32/win32k/objects/dclife.c
Modified: branches/reactos-yarotows/subsystems/win32/win32k/include/dc.h
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win32/win32k/include/dc.h?rev=46470&r1=46469&r2=46470&view=diff
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/include/dc.h [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/include/dc.h [iso-8859-1] Fri Mar 26 17:17:12 2010
@@ -167,8 +167,8 @@
DC_LockDc(HDC hdc)
{
PDC pdc;
- pdc = GDIOBJ_LockObj(hdc, GDI_OBJECT_TYPE_DC);
-// EngAcquireSemaphoreShared(pdc->ppdev->hsemDevLock);
+ pdc = GDIOBJ_LockObj(hdc, GDILoObjType_LO_DC_TYPE);
+ if(pdc) EngAcquireSemaphoreShared(pdc->ppdev->hsemDevLock);
return pdc;
}
@@ -176,7 +176,7 @@
FORCEINLINE
DC_UnlockDc(PDC pdc)
{
-// EngReleaseSemaphore(pdc->ppdev->hsemDevLock);
+ EngReleaseSemaphore(pdc->ppdev->hsemDevLock);
GDIOBJ_UnlockObjByPtr(&pdc->BaseObject);
}
Modified: branches/reactos-yarotows/subsystems/win32/win32k/objects/dclife.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win32/win32k/objects/dclife.c?rev=46470&r1=46469&r2=46470&view=diff
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/objects/dclife.c [iso-8859-1] Fri Mar 26 17:17:12 2010
@@ -117,6 +117,8 @@
DCTYPE dctype,
PPDEVOBJ ppdev)
{
+ /* Lock ppdev */
+ EngAcquireSemaphoreShared(ppdev->hsemDevLock);
/* Setup some basic fields */
pdc->dctype = dctype;
@@ -477,6 +479,7 @@
}
hdc = pdc->BaseObject.hHmgr;
+ /* Lock ppdev and initialize the new DC */
DC_vInitDc(pdc, iType, ppdev);
/* FIXME: HACK! */
DC_InitHack(pdc);
@@ -638,7 +641,7 @@
}
hdcNew = pdcNew->BaseObject.hHmgr;
- /* Initialize the new DC */
+ /* Lock ppdev and initialize the new DC */
DC_vInitDc(pdcNew, DCTYPE_MEMORY, ppdev);
/* FIXME: HACK! */
DC_InitHack(pdcNew);
More information about the Ros-diffs
mailing list