]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix bug in wxMSW wxMessageDialog when the text was empty.
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Feb 2010 21:07:38 +0000 (21:07 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Feb 2010 21:07:38 +0000 (21:07 +0000)
Don't crash in ReplaceStaticWithEdit() dereferencing an invalid end()-1
iterator in this case, use the always valid rbegin() instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63377 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/msgdlg.cpp

index 108beb7d1bcb4ba1e91a754edbfde98a1c9ebbbe..d0ddb15ac087724b71cac9d8b783b9a79a7492d2 100644 (file)
@@ -246,11 +246,12 @@ void wxMessageDialog::ReplaceStaticWithEdit()
     // ignored by the static control but result in extra lines and hence extra
     // scrollbar position in the edit one
     wxString text(wxGetWindowText(hwndStatic));
-    for ( wxString::iterator i = text.end() - 1; i != text.begin(); --i )
+    for ( wxString::reverse_iterator i = text.rbegin(); i != text.rend(); ++i )
     {
         if ( *i != '\n' )
         {
-            text.erase(i + 1, text.end());
+            // found last non-newline char, remove everything after it and stop
+            text.erase(i.base() + 1, text.end());
             break;
         }
     }