Index: ui/views/win/hwnd_message_handler.h |
diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h |
index 24cd8fda66d53212e1cfbabe45a1a21ee0c17c0b..d5a5c866c9ae5f56c43d83ad3fc6b893fbf731a5 100644 |
--- a/ui/views/win/hwnd_message_handler.h |
+++ b/ui/views/win/hwnd_message_handler.h |
@@ -78,10 +78,12 @@ const int WM_NCUAHDRAWFRAME = 0xAF; |
LPARAM l_param, \ |
LRESULT& l_result, \ |
DWORD msg_map_id = 0) { \ |
+ base::WeakPtr<HWNDMessageHandler> ref(weak_factory_.GetWeakPtr()); \ |
BOOL old_msg_handled = msg_handled_; \ |
BOOL ret = _ProcessWindowMessage(hwnd, msg, w_param, l_param, l_result, \ |
msg_map_id); \ |
- msg_handled_ = old_msg_handled; \ |
+ if (ref.get()) \ |
+ msg_handled_ = old_msg_handled; \ |
return ret; \ |
} \ |
BOOL _ProcessWindowMessage(HWND hWnd, \ |