X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70050c82fe8114fc5d86591035e71751bac21cc6..7f1698c34c3d4241bb96a6a40d02bd25df6db594:/src/common/cmdproc.cpp diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index c2d44c895b..7466686e7a 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -93,7 +93,12 @@ bool wxCommandProcessor::Submit(wxCommand *command, bool storeIt) wxCHECK_MSG( command, FALSE, _T("no command in wxCommandProcessor::Submit") ); if ( !DoCommand(*command) ) + { + // the user code expects the command to be deleted anyhow + delete command; + return FALSE; + } if ( storeIt ) Store(command); @@ -154,12 +159,17 @@ bool wxCommandProcessor::Redo() { wxCommand *redoCommand = (wxCommand *) NULL; wxNode *redoNode = (wxNode *) NULL; - if (m_currentCommand && m_currentCommand->Next()) + + if ( m_currentCommand ) { - redoCommand = (wxCommand *)m_currentCommand->Next()->Data(); - redoNode = m_currentCommand->Next(); + // is there anything to redo? + if ( m_currentCommand->Next() ) + { + redoCommand = (wxCommand *)m_currentCommand->Next()->Data(); + redoNode = m_currentCommand->Next(); + } } - else + else // no current command, redo the first one { if (m_commands.Number() > 0) {