From 7b1b14913ac759e86176d212afa6d90f67eb8bb6 Mon Sep 17 00:00:00 2001 From: Kris De Gussem Date: Sat, 5 Nov 2011 08:20:36 +0100 Subject: Various fixes: initialization, memory leak, wrong iterator usage (bzr r10721) --- src/composite-undo-stack-observer.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/composite-undo-stack-observer.cpp') diff --git a/src/composite-undo-stack-observer.cpp b/src/composite-undo-stack-observer.cpp index 383e08cd8..81a0b27c7 100644 --- a/src/composite-undo-stack-observer.cpp +++ b/src/composite-undo-stack-observer.cpp @@ -137,16 +137,22 @@ CompositeUndoStackObserver::_unlock() if (!--this->_iterating) { // Remove marked observers UndoObserverRecordList::iterator i = this->_active.begin(); - for(; i != this->_active.begin(); ++i) { + for(; i != this->_active.begin(); ) { if (i->to_remove) { - this->_active.erase(i); + i = this->_active.erase(i); + } + else{ + ++i; } } i = this->_pending.begin(); - for(; i != this->_pending.begin(); ++i) { + for(; i != this->_pending.begin(); ) { if (i->to_remove) { - this->_active.erase(i); + i = this->_active.erase(i); + } + else { + ++i; } } -- cgit v1.2.3