[2/2] user32: do not call NULL message callback
Fabian Bieler
der.fabe at gmx.net
Sat Feb 24 12:57:22 CST 2007
Catch NULL callbacks from SendMessageCallback;
Enable testcase from previous patch.
-------------- next part --------------
From e8320555fa8599591a93f311c6df8be9b654dcec Mon Sep 17 00:00:00 2001
From: Fabian Bieler <der.fabe at gmx.net>
Date: Sat, 24 Feb 2007 19:46:53 +0100
Subject: [PATCH] [2/2] user32: do not call NULL message callback
---
dlls/user32/message.c | 21 ++++++++++++---------
dlls/user32/tests/msg.c | 21 +++++++++------------
2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/dlls/user32/message.c b/dlls/user32/message.c
index 22b922d..5814950 100644
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -1905,15 +1905,18 @@ static BOOL process_hardware_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info
static inline void call_sendmsg_callback( SENDASYNCPROC callback, HWND hwnd, UINT msg,
ULONG_PTR data, LRESULT result )
{
- if (TRACE_ON(relay))
- DPRINTF( "%04x:Call message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
- GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
- data, result );
- callback( hwnd, msg, data, result );
- if (TRACE_ON(relay))
- DPRINTF( "%04x:Ret message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
- GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
- data, result );
+ if(callback)
+ {
+ if (TRACE_ON(relay))
+ DPRINTF( "%04x:Call message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
+ GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
+ data, result );
+ callback( hwnd, msg, data, result );
+ if (TRACE_ON(relay))
+ DPRINTF( "%04x:Ret message callback %p (hwnd=%p,msg=%s,data=%08lx,result=%08lx)\n",
+ GetCurrentThreadId(), callback, hwnd, SPY_GetMsgName( msg, hwnd ),
+ data, result );
+ }
}
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 39bb94a..0665b55 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -8894,23 +8894,20 @@ static void test_nullCallback(void)
HWND hwnd;
MSG msg;
- if(0)
- {
- hwnd = CreateWindowExA(0, "TestWindowClass", "Test overlapped", WS_OVERLAPPEDWINDOW,
- 100, 100, 200, 200, 0, 0, 0, NULL);
- ok (hwnd != 0, "Failed to create overlapped window\n");
+ hwnd = CreateWindowExA(0, "TestWindowClass", "Test overlapped", WS_OVERLAPPEDWINDOW,
+ 100, 100, 200, 200, 0, 0, 0, NULL);
+ ok (hwnd != 0, "Failed to create overlapped window\n");
- ShowWindow(hwnd, SW_SHOW);
- UpdateWindow( hwnd );
+ ShowWindow(hwnd, SW_SHOW);
+ UpdateWindow( hwnd );
- SendMessageCallbackA(hwnd,WM_NULL,0,0,NULL,0);
+ SendMessageCallbackA(hwnd,WM_NULL,0,0,NULL,0);
- while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessage( &msg );
+ while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessage( &msg );
- ok(1, "\n");
+ ok(1, "\n");
- DestroyWindow(hwnd);
- }
+ DestroyWindow(hwnd);
}
START_TEST(msg)
--
1.4.4.1
More information about the wine-patches
mailing list