(GDIOBJ_SetOwnership): Don't try to decrease the GDI object counter for
global handles since they're not associated with process.
Modified: trunk/reactos/subsys/win32k/objects/gdiobj.c
_____
Modified: trunk/reactos/subsys/win32k/objects/gdiobj.c
--- trunk/reactos/subsys/win32k/objects/gdiobj.c 2005-03-17
20:15:44 UTC (rev 14165)
+++ trunk/reactos/subsys/win32k/objects/gdiobj.c 2005-03-17
22:00:19 UTC (rev 14166)
@@ -1216,15 +1216,18 @@
/* dereference the process' object counter */
/* FIXME */
- Status =
PsLookupProcessByProcessId((HANDLE)((ULONG_PTR)PrevProcId & ~0x1),
&OldProcess);
- if(NT_SUCCESS(Status))
+ if((ULONG_PTR)PrevProcId & ~0x1)
{
- W32Process = OldProcess->Win32Process;
- if(W32Process != NULL)
+ Status =
PsLookupProcessByProcessId((HANDLE)((ULONG_PTR)PrevProcId & ~0x1),
&OldProcess);
+ if(NT_SUCCESS(Status))
{
- InterlockedDecrement(&W32Process->GDIObjects);
+ W32Process = OldProcess->Win32Process;
+ if(W32Process != NULL)
+ {
+ InterlockedDecrement(&W32Process->GDIObjects);
+ }
+ ObDereferenceObject(OldProcess);
}
- ObDereferenceObject(OldProcess);
}
if(NewOwner != NULL)