From: Vadim Zeitlin Date: Sun, 6 Jun 1999 22:12:36 +0000 (+0000) Subject: bug in menu accelerators code corrected (don't create empty accel table, X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5df1250b3059721f336a61bbb2770357e86afe42 bug in menu accelerators code corrected (don't create empty accel table, this exposes a bug in Win32 API :-) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index 3fbfd1f1ca..59fc836e29 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -1014,7 +1014,7 @@ void wxMenuBar::Attach(wxFrame *frame) m_menuBarFrame = frame; - // create the accel table - we consider that the toolbar construction is + // create the accel table - we consider that the menubar construction is // finished size_t nAccelCount = 0; int i; @@ -1023,17 +1023,20 @@ void wxMenuBar::Attach(wxFrame *frame) nAccelCount += m_menus[i]->GetAccelCount(); } - wxAcceleratorEntry *accelEntries = new wxAcceleratorEntry[nAccelCount]; - - nAccelCount = 0; - for ( i = 0; i < m_menuCount; i++ ) + if ( nAccelCount ) { - nAccelCount += m_menus[i]->CopyAccels(&accelEntries[nAccelCount]); - } + wxAcceleratorEntry *accelEntries = new wxAcceleratorEntry[nAccelCount]; - m_accelTable = wxAcceleratorTable(nAccelCount, accelEntries); + nAccelCount = 0; + for ( i = 0; i < m_menuCount; i++ ) + { + nAccelCount += m_menus[i]->CopyAccels(&accelEntries[nAccelCount]); + } + + m_accelTable = wxAcceleratorTable(nAccelCount, accelEntries); - delete [] accelEntries; + delete [] accelEntries; + } } // ---------------------------------------------------------------------------