[ros-diffs] [jgardou] 46734: [WIN32K] Partially revert 46733 Silence some debug output
jgardou at svn.reactos.org
jgardou at svn.reactos.org
Mon Apr 5 13:53:37 CEST 2010
Author: jgardou
Date: Mon Apr 5 13:53:36 2010
New Revision: 46734
URL: http://svn.reactos.org/svn/reactos?rev=46734&view=rev
Log:
[WIN32K]
Partially revert 46733
Silence some debug output
Modified:
branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c
Modified: branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c?rev=46734&r1=46733&r2=46734&view=diff
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] Mon Apr 5 13:53:36 2010
@@ -60,7 +60,8 @@
/* Do we have a surface? */
if(ppdev->pSurface)
{
- /* No one should hold a lock on this surface */
+ /* Release the surface and let the driver free it */
+ SURFACE_ShareUnlockSurface(ppdev->pSurface);
ppdev->pfn.DisableSurface(ppdev->dhpdev);
}
@@ -146,8 +147,6 @@
{
HSURF hsurf;
- DPRINT("PDEVOBJ_pSurface()\n");
-
/* Check if we already have a surface */
if (ppdev->pSurface)
{
@@ -291,6 +290,7 @@
PPDEVOBJ ppdev2)
{
PDEVOBJ pdevTmp;
+ HDEV hdev;
/* Exchange data */
pdevTmp = *ppdev;
@@ -310,10 +310,9 @@
/* Exchange surface */
ppdev->pSurface = ppdev2->pSurface;
ppdev2->pSurface = pdevTmp.pSurface;
- if(ppdev->pSurface)
- ppdev->pSurface->SurfObj.hdev = (HDEV)ppdev;
- if(ppdev2->pSurface)
- ppdev2->pSurface->SurfObj.hdev = (HDEV)ppdev2;
+ hdev = ppdev->pSurface->SurfObj.hdev;
+ ppdev->pSurface->SurfObj.hdev = ppdev2->pSurface->SurfObj.hdev;
+ ppdev2->pSurface->SurfObj.hdev = hdev;
/* Exchange devinfo */
ppdev->devinfo = ppdev2->devinfo;
@@ -337,6 +336,7 @@
{
UNICODE_STRING ustrDevice;
PPDEVOBJ ppdevTmp;
+ PSURFACE pSurface;
BOOL retval = FALSE;
/* Lock the PDEV */
@@ -365,14 +365,25 @@
goto leave;
}
- /* 3. Get DirectDraw information */
- /* 4. Enable DirectDraw Not traced */
- /* 5. Copy old PDEV state to new PDEV instance */
-
- /* 6. Switch the PDEVs */
+ /* 3. Create a new surface */
+ pSurface = PDEVOBJ_pSurface(ppdevTmp);
+ if (!pSurface)
+ {
+ DPRINT1("DrvEnableSurface failed\n");
+ goto leave;
+ }
+
+ ASSERT(pSurface->BitsLock);
+
+ /* 4. Get DirectDraw information */
+ /* 5. Enable DirectDraw Not traced */
+ /* 6. Copy old PDEV state to new PDEV instance */
+
+ /* 7. Switch the PDEVs */
PDEVOBJ_vSwitchPdev(ppdev, ppdevTmp);
-
- /* 7. Disable DirectDraw */
+ ASSERT(ppdev->pSurface->BitsLock);
+
+ /* 8. Disable DirectDraw */
PDEVOBJ_vRelease(ppdevTmp);
@@ -384,6 +395,7 @@
EngReleaseSemaphore(ghsemPDEV);
DPRINT1("leave, ppdev = %p, pSurface = %p\n", ppdev, ppdev->pSurface);
+ ASSERT(ppdev->pSurface->BitsLock);
return retval;
}
More information about the Ros-diffs
mailing list