From 4193a1a4a4feffc84d39eff1d7ce1acdc663eff7 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 12 Jul 2010 22:50:28 +0000 Subject: [PATCH] Don't use dangling pointers in wxWindowMSW::HandleMenuChar(). We used a pointer into the result of wx_str() for a temporary string which was clearly wrong. Store the string we're manipulating to ensure that this doesn't happen. This in particular fixes keyboard navigation in the menus with owner-drawn items. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/window.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 9a6b7259a6..3d117a6969 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -5724,7 +5724,8 @@ int wxWindowMSW::HandleMenuChar(int WXUNUSED_IN_WINCE(chAccel), // menu creation code wxMenuItem *item = (wxMenuItem*)mii.dwItemData; - const wxChar *p = wxStrchr(item->GetItemLabel().wx_str(), wxT('&')); + const wxString label(item->GetItemLabel()); + const wxChar *p = wxStrchr(label.wx_str(), wxT('&')); while ( p++ ) { if ( *p == wxT('&') ) -- 2.45.2