Vincent Povirk : server: Clear the queue' s QS_SMRESULT bit when sending a new message.
Alexandre Julliard
julliard at winehq.org
Tue May 20 14:36:24 CDT 2014
Module: wine
Branch: master
Commit: 417585661c26af26bc3251cff8e628e04adbec80
URL: http://source.winehq.org/git/wine.git/?a=commit;h=417585661c26af26bc3251cff8e628e04adbec80
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Tue May 13 15:35:20 2014 -0500
server: Clear the queue's QS_SMRESULT bit when sending a new message.
---
dlls/user32/tests/win.c | 2 +-
server/queue.c | 9 +++++++--
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index a858f6b..cffceb3 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -7580,7 +7580,7 @@ static LRESULT WINAPI smresult_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARA
/* Send another message while we have a reply queued for the current one. */
res = SendMessageA(data->thread_hwnd, WM_APP+2, 0, lparam);
- todo_wine ok(res == 0x449b0190, "unexpected result %lx\n", res);
+ ok(res == 0x449b0190, "unexpected result %lx\n", res);
return 0;
}
diff --git a/server/queue.c b/server/queue.c
index 1954886..57603e1 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -681,7 +681,11 @@ static struct message_result *alloc_message_result( struct msg_queue *send_queue
result->callback_msg = callback_msg;
list_add_head( &send_queue->callback_result, &result->sender_entry );
}
- else if (send_queue) list_add_head( &send_queue->send_result, &result->sender_entry );
+ else if (send_queue)
+ {
+ list_add_head( &send_queue->send_result, &result->sender_entry );
+ clear_queue_bits( send_queue, QS_SMRESULT );
+ }
if (timeout != TIMEOUT_INFINITE)
result->timeout = add_timeout_user( timeout, result_timeout, result );
@@ -2502,7 +2506,8 @@ DECL_HANDLER(get_message_reply)
else
{
result = LIST_ENTRY( entry, struct message_result, sender_entry );
- if (!result->replied) clear_queue_bits( queue, QS_SMRESULT );
+ if (result->replied) set_queue_bits( queue, QS_SMRESULT );
+ else clear_queue_bits( queue, QS_SMRESULT );
}
}
}
More information about the wine-cvs
mailing list