| Index: Source/platform/LifecycleNotifier.h
|
| diff --git a/Source/platform/LifecycleNotifier.h b/Source/platform/LifecycleNotifier.h
|
| index 3aff06828977bcf97d6360fc09516ac66f202a74..234b320f00b476508ab44065e795361aa9ea8554 100644
|
| --- a/Source/platform/LifecycleNotifier.h
|
| +++ b/Source/platform/LifecycleNotifier.h
|
| @@ -40,8 +40,12 @@ public:
|
| typedef LifecycleObserver<T> Observer;
|
| typedef T Context;
|
|
|
| + static PassOwnPtr<LifecycleNotifier> create(Context* context)
|
| + {
|
| + return adoptPtr(new LifecycleNotifier(context));
|
| + }
|
| +
|
| virtual ~LifecycleNotifier();
|
| - virtual bool isContextThread() const { return true; }
|
|
|
| // notifyContextDestroyed() should be explicitly dispatched from an
|
| // observed context to notify observers contextDestroyed().
|
| @@ -53,7 +57,7 @@ public:
|
| virtual void addObserver(Observer*);
|
| virtual void removeObserver(Observer*);
|
|
|
| - virtual void trace(Visitor*) { }
|
| + bool isIteratingOverObservers() const { return m_iterating != IteratingNone; }
|
|
|
| protected:
|
| explicit LifecycleNotifier(Context* context)
|
| @@ -91,7 +95,7 @@ inline LifecycleNotifier<T>::~LifecycleNotifier()
|
| // ASSERT(!m_observers.size() || m_didCallContextDestroyed);
|
|
|
| #if !ENABLE(OILPAN)
|
| - TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
|
| + TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverAll);
|
| for (Observer* observer : m_observers) {
|
| ASSERT(observer->lifecycleContext() == m_context);
|
| observer->clearLifecycleContext();
|
| @@ -106,7 +110,7 @@ inline void LifecycleNotifier<T>::notifyContextDestroyed()
|
| if (m_didCallContextDestroyed)
|
| return;
|
|
|
| - TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll);
|
| + TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverAll);
|
| Vector<Observer*> snapshotOfObservers;
|
| copyToVector(m_observers, snapshotOfObservers);
|
| for (Observer* observer : snapshotOfObservers) {
|
|
|