[ros-diffs] [tkreuzer] 40971: Implement ONE_PARAM_ROUTINE_POSTQUITMESSAGE case in NtUserCallOneParam and use it in PostQuitMessage instead of NtUserPostMessage. Fixes some hangs in comctl32_winetests introduced with r40964. Patch by Giannis Adamopoulos. See issue #4058 for more details.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Mon May 18 23:29:51 CEST 2009


Author: tkreuzer
Date: Tue May 19 01:29:50 2009
New Revision: 40971

URL: http://svn.reactos.org/svn/reactos?rev=40971&view=rev
Log:
Implement ONE_PARAM_ROUTINE_POSTQUITMESSAGE case in NtUserCallOneParam and use it in PostQuitMessage instead of NtUserPostMessage. Fixes some hangs in comctl32_winetests introduced with r40964. Patch by Giannis Adamopoulos.


See issue #4058 for more details.

Modified:
    trunk/reactos/dll/win32/user32/windows/message.c
    trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c

Modified: trunk/reactos/dll/win32/user32/windows/message.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/message.c?rev=40971&r1=40970&r2=40971&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] Tue May 19 01:29:50 2009
@@ -1709,7 +1709,7 @@
 PostQuitMessage(
   int nExitCode)
 {
-  (void) NtUserPostMessage(NULL, WM_QUIT, nExitCode, 0);
+    NtUserCallOneParam(nExitCode, ONEPARAM_ROUTINE_POSTQUITMESSAGE);
 }
 
 

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c?rev=40971&r1=40970&r2=40971&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/simplecall.c [iso-8859-1] Tue May 19 01:29:50 2009
@@ -152,6 +152,13 @@
 
    switch(Routine)
    {
+      case ONEPARAM_ROUTINE_POSTQUITMESSAGE:
+          {
+                PTHREADINFO pti;
+                pti = PsGetCurrentThreadWin32Thread();
+                MsqPostQuitMessage(pti->MessageQueue, Param);
+                RETURN(TRUE);
+          }
       case ONEPARAM_ROUTINE_SHOWCURSOR:
          RETURN( (DWORD)UserShowCursor((BOOL)Param) );
 



More information about the Ros-diffs mailing list