diff --git a/lemon/bits/alteration_notifier.h b/lemon/bits/alteration_notifier.h --- a/lemon/bits/alteration_notifier.h +++ b/lemon/bits/alteration_notifier.h @@ -409,9 +409,9 @@ (*it)->erase(item); ++it; } catch (const ImmediateDetach&) { - it = _observers.erase(it); (*it)->_index = _observers.end(); (*it)->_notifier = 0; + it = _observers.erase(it); } } } @@ -429,9 +429,9 @@ (*it)->erase(items); ++it; } catch (const ImmediateDetach&) { - it = _observers.erase(it); (*it)->_index = _observers.end(); (*it)->_notifier = 0; + it = _observers.erase(it); } } } @@ -468,9 +468,9 @@ (*it)->clear(); ++it; } catch (const ImmediateDetach&) { - it = _observers.erase(it); (*it)->_index = _observers.end(); (*it)->_notifier = 0; + it = _observers.erase(it); } } }