[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