| Index: Source/platform/LifecycleNotifier.h
|
| diff --git a/Source/platform/LifecycleNotifier.h b/Source/platform/LifecycleNotifier.h
|
| index f465555b68199f20cde0ffa1a8b5039b385257bf..44dcf07aa07a67ccd65a54ba279a6a7c0e0ffd09 100644
|
| --- a/Source/platform/LifecycleNotifier.h
|
| +++ b/Source/platform/LifecycleNotifier.h
|
| @@ -48,7 +48,12 @@ public:
|
| // is still valid and safe to use during the notification.
|
| virtual void notifyContextDestroyed();
|
|
|
| - DEFINE_INLINE_VIRTUAL_TRACE() { }
|
| + DEFINE_INLINE_VIRTUAL_TRACE()
|
| + {
|
| +#if ENABLE(OILPAN)
|
| + visitor->trace(m_observers);
|
| +#endif
|
| + }
|
|
|
| bool isIteratingOverObservers() const { return m_iterating != IteratingNone; }
|
|
|
| @@ -68,8 +73,12 @@ protected:
|
| IterationType m_iterating;
|
|
|
| protected:
|
| - using ObserverSet = HashSet<Observer*>;
|
| + using ObserverSet = WillBeHeapHashSet<RawPtrWillBeWeakMember<Observer>>;
|
|
|
| + // FIXME: Oilpan: make LifecycleNotifier<> a GC mixin, somehow. ExecutionContext
|
| + // is the problematic case, as it would then be a class with two GC mixin
|
| + // bases, but cannot itself derive from a GC base class also.
|
| + GC_PLUGIN_IGNORE("467502")
|
| ObserverSet m_observers;
|
|
|
| #if ENABLE(ASSERT)
|
|
|