diff options
-rw-r--r-- | xbmc/utils/Observer.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/xbmc/utils/Observer.cpp b/xbmc/utils/Observer.cpp index d930d61b50..bbbf03a426 100644 --- a/xbmc/utils/Observer.cpp +++ b/xbmc/utils/Observer.cpp @@ -52,7 +52,9 @@ void Observable::RegisterObserver(Observer *obs) void Observable::UnregisterObserver(Observer *obs) { CSingleLock lock(m_obsCritSection); - std::remove(m_observers.begin(), m_observers.end(), obs); + auto iter = std::remove(m_observers.begin(), m_observers.end(), obs); + if (iter != m_observers.end()) + m_observers.erase(iter); } void Observable::NotifyObservers(const ObservableMessage message /* = ObservableMessageNone */) |