[ros-diffs] [tkreuzer] 32555: call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sun Mar 9 12:33:10 CET 2008


Author: tkreuzer
Date: Tue Mar  4 01:22:07 2008
New Revision: 32555

URL: http://svn.reactos.org/svn/reactos?rev=3D32555&view=3Drev
Log:
call PsGetCurrentThreadWin32Thread() and PsGetCurrentProcess() only once

Modified:
    trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win3=
2k/ntuser/winsta.c?rev=3D32555&r1=3D32554&r2=3D32555&view=3Ddiff
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/winsta.c Tue Mar  4 01:22:=
07 2008
@@ -965,19 +965,22 @@
 IntGetWinStaObj(VOID)
 {
    PWINSTATION_OBJECT WinStaObj;
+   PW32THREAD Win32Thread;
+   PEPROCESS CurrentProcess;
 =

    /*
     * just a temporary hack, this will be gone soon
     */
 =

-   if(PsGetCurrentThreadWin32Thread() !=3D NULL && PsGetCurrentThreadWin32=
Thread()->Desktop !=3D NULL)
-   {
-      WinStaObj =3D PsGetCurrentThreadWin32Thread()->Desktop->WindowStatio=
n;
+   Win32Thread =3D PsGetCurrentThreadWin32Thread();
+   if(Win32Thread !=3D NULL && Win32Thread->Desktop !=3D NULL)
+   {
+      WinStaObj =3D Win32Thread->Desktop->WindowStation;
       ObReferenceObjectByPointer(WinStaObj, KernelMode, ExWindowStationObj=
ectType, 0);
    }
-   else if(PsGetCurrentProcess() !=3D CsrProcess)
-   {
-      NTSTATUS Status =3D IntValidateWindowStationHandle(PsGetCurrentProce=
ss()->Win32WindowStation,
+   else if((CurrentProcess =3D PsGetCurrentProcess()) !=3D CsrProcess)
+   {
+      NTSTATUS Status =3D IntValidateWindowStationHandle(CurrentProcess->W=
in32WindowStation,
                         KernelMode,
                         0,
                         &WinStaObj);




More information about the Ros-diffs mailing list