Check that m_lastSavedCommand is valid before comparing it with
m_currentCommand as comparing invalid iterators results in an assert in STL
build (and probably should also result in an assert in non-STL build too for
consistency).
Also move IsDirty() implementation out of line to make it easier to modify it
further in the future and because there is no real reason to keep it inline.
Closes #13465.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70459
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual void ClearCommands();
// Has the current project been changed?
- virtual bool IsDirty() const
- {
- return m_currentCommand && (m_lastSavedCommand != m_currentCommand);
- }
+ virtual bool IsDirty() const;
// Mark the current command as the one where the last save took place
void MarkAsSaved()
m_lastSavedCommand = wxList::compatibility_iterator();
}
+bool wxCommandProcessor::IsDirty() const
+{
+ if ( !m_currentCommand )
+ return false;
+
+ if ( !m_lastSavedCommand )
+ return true;
+
+ return m_lastSavedCommand != m_currentCommand;
+}