--- branches/ros-branch-0_2_6/reactos/subsys/win32k/objects/gdiobj.c 2005-03-23 17:07:48 UTC (rev 14277)
+++ branches/ros-branch-0_2_6/reactos/subsys/win32k/objects/gdiobj.c 2005-03-23 17:08:24 UTC (rev 14278)
@@ -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)