mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 04:13:34 +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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user