(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)