| Index: Source/platform/LifecycleNotifier.h
|
| diff --git a/Source/platform/LifecycleNotifier.h b/Source/platform/LifecycleNotifier.h
|
| index 818cd931b998d9a6583f08f1bc2a21d13b8a1c87..4a638f5eb1c7383d207d7e97b9f5e0e6e241d8b6 100644
|
| --- a/Source/platform/LifecycleNotifier.h
|
| +++ b/Source/platform/LifecycleNotifier.h
|
| @@ -45,9 +45,13 @@ public:
|
| return adoptPtr(new LifecycleNotifier(context));
|
| }
|
|
|
| + virtual ~LifecycleNotifier()
|
| + {
|
| + ASSERT(!m_observers.size());
|
| + ASSERT(!m_context);
|
| + }
|
|
|
| - virtual ~LifecycleNotifier();
|
| -
|
| + void contextDestroyed();
|
|
|
| // FIXME: this won't need to be virtual anymore.
|
| virtual void addObserver(Observer*);
|
| @@ -84,7 +88,7 @@ private:
|
| };
|
|
|
| template<typename T>
|
| -inline LifecycleNotifier<T>::~LifecycleNotifier()
|
| +inline void LifecycleNotifier<T>::contextDestroyed()
|
| {
|
| TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverAll);
|
| for (typename ObserverSet::iterator it = m_observers.begin(); it != m_observers.end(); it = m_observers.begin()) {
|
| @@ -93,6 +97,7 @@ inline LifecycleNotifier<T>::~LifecycleNotifier()
|
| ASSERT(observer->lifecycleContext() == m_context);
|
| observer->contextDestroyed();
|
| }
|
| + m_context = nullptr;
|
| }
|
|
|
| template<typename T>
|
|
|