mirror of
https://github.com/reactos/reactos.git
synced 2025-04-19 12:08:55 +00:00
[WIN32k]
- Chek if there is something to do in GDIOBJ_SetOwnership before doing it svn path=/trunk/; revision=47788
This commit is contained in:
parent
1a601ba9e5
commit
57d80a50d5
1 changed files with 14 additions and 4 deletions
|
@ -1412,6 +1412,19 @@ LockHandle:
|
|||
PPROCESSINFO W32Process;
|
||||
NTSTATUS Status;
|
||||
|
||||
if (NewOwner != NULL)
|
||||
{
|
||||
ProcessId = PsGetProcessId(NewOwner);
|
||||
}
|
||||
else
|
||||
ProcessId = 0;
|
||||
|
||||
if((ULONG_PTR)ProcessId == ((ULONG_PTR)PrevProcId & ~0x1))
|
||||
{
|
||||
DPRINT("Setting same process than previous one, nothing to do\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* dereference the process' object counter */
|
||||
/* FIXME */
|
||||
if ((ULONG_PTR)PrevProcId & ~0x1)
|
||||
|
@ -1430,8 +1443,6 @@ LockHandle:
|
|||
|
||||
if (NewOwner != NULL)
|
||||
{
|
||||
ProcessId = PsGetProcessId(NewOwner);
|
||||
|
||||
/* Increase the new process' object counter */
|
||||
W32Process = (PPROCESSINFO)NewOwner->Win32Process;
|
||||
if (W32Process != NULL)
|
||||
|
@ -1439,9 +1450,8 @@ LockHandle:
|
|||
InterlockedIncrement(&W32Process->GDIHandleCount);
|
||||
}
|
||||
}
|
||||
else
|
||||
ProcessId = 0;
|
||||
|
||||
done:
|
||||
/* remove the process id lock and change it to the new process id */
|
||||
(void)InterlockedExchangePointer((PVOID*)&Entry->ProcessId, ProcessId);
|
||||
|
||||
|
|
Loading…
Reference in a new issue