[ros-diffs] [jimtabor] 54275: [Win32k] - don't hangup on the user while in send message.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Sun Oct 30 15:44:32 UTC 2011


Author: jimtabor
Date: Sun Oct 30 15:44:31 2011
New Revision: 54275

URL: http://svn.reactos.org/svn/reactos?rev=54275&view=rev
Log:
[Win32k]
- don't hangup on the user while in send message.

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

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c?rev=54275&r1=54274&r2=54275&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] Sun Oct 30 15:44:31 2011
@@ -663,6 +663,7 @@
    PUSER_SENT_MESSAGE SaveMsg, Message;
    PLIST_ENTRY Entry;
    PTHREADINFO pti;
+   BOOL Ret;
    LRESULT Result = 0;
 
    if (IsListEmpty(&MessageQueue->SentMessagesListHead))
@@ -732,7 +733,8 @@
          RemoveEntryList(&Message->ListEntry);
          InsertTailList(&Message->CallBackSenderQueue->SentMessagesListHead, &Message->ListEntry);
          TRACE("Callback Message not processed yet. Requeuing the message\n");
-         return (FALSE);
+         Ret = FALSE;
+         goto Exit;
       }
    }
    else
@@ -760,7 +762,8 @@
          MsqWakeQueue(Message->CallBackSenderQueue, QS_SENDMESSAGE, TRUE);
          IntDereferenceMessageQueue(Message->CallBackSenderQueue);
       }
-      return (TRUE);
+      Ret = TRUE;
+      goto Exit;
    }
 
    /* remove the message from the dispatching list if needed, so lock the sender's message queue */
@@ -808,12 +811,13 @@
 
    /* free the message */
    ExFreePoolWithTag(Message, TAG_USRMSG);
-
+   Ret = TRUE;
+Exit:
    /* do not hangup on the user if this is reentering */
    if (!SaveMsg) pti->pcti->CTI_flags &= ~CTI_INSENDMESSAGE;
    pti->pusmCurrent = SaveMsg;
 
-   return(TRUE);
+   return Ret;
 }
 
 VOID APIENTRY




More information about the Ros-diffs mailing list