Commit a2e7f068 authored by tkent@chromium.org's avatar tkent@chromium.org

Oilpan: Prepare to move ScriptedAnimationController to Oilpan heap.

BUG=

Review URL: https://codereview.chromium.org/341433003

git-svn-id: svn://svn.chromium.org/blink/trunk@176291 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 8010ba13
......@@ -5841,6 +5841,7 @@ void Document::trace(Visitor* visitor)
visitor->trace(m_contextFeatures);
visitor->trace(m_styleSheetList);
visitor->trace(m_mediaQueryMatcher);
visitor->trace(m_scriptedAnimationController);
visitor->trace(m_registrationContext);
visitor->trace(m_associatedFormControls);
visitor->trace(m_useElementsNeedingUpdate);
......
......@@ -1385,7 +1385,7 @@ private:
OwnPtr<TouchEventTargetSet> m_touchEventTargets;
RefPtr<ScriptedAnimationController> m_scriptedAnimationController;
RefPtrWillBeMember<ScriptedAnimationController> m_scriptedAnimationController;
OwnPtr<MainThreadTaskRunner> m_taskRunner;
OwnPtr<TextAutosizer> m_textAutosizer;
OwnPtr<FastTextAutosizer> m_fastTextAutosizer;
......
......@@ -53,6 +53,15 @@ ScriptedAnimationController::~ScriptedAnimationController()
{
}
void ScriptedAnimationController::trace(Visitor* visitor)
{
visitor->trace(m_document);
visitor->trace(m_eventQueue);
#if ENABLE(OILPAN)
visitor->trace(m_perFrameEvents);
#endif
}
void ScriptedAnimationController::suspend()
{
++m_suspendCount;
......@@ -168,7 +177,7 @@ void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTime
if (m_suspendCount)
return;
RefPtr<ScriptedAnimationController> protect(this);
RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this);
dispatchEvents();
executeCallbacks(monotonicTimeNow);
......
......@@ -40,14 +40,15 @@ class Event;
class EventTarget;
class RequestAnimationFrameCallback;
class ScriptedAnimationController : public RefCounted<ScriptedAnimationController> {
class ScriptedAnimationController : public RefCountedWillBeGarbageCollectedFinalized<ScriptedAnimationController> {
public:
static PassRefPtr<ScriptedAnimationController> create(Document* document)
static PassRefPtrWillBeRawPtr<ScriptedAnimationController> create(Document* document)
{
return adoptRef(new ScriptedAnimationController(document));
return adoptRefWillBeNoop(new ScriptedAnimationController(document));
}
~ScriptedAnimationController();
void clearDocumentPointer() { m_document = 0; }
void trace(Visitor*);
void clearDocumentPointer() { m_document = nullptr; }
typedef int CallbackId;
......@@ -73,11 +74,11 @@ private:
CallbackList m_callbacks;
CallbackList m_callbacksToInvoke; // only non-empty while inside executeCallbacks
Document* m_document;
RawPtrWillBeMember<Document> m_document;
CallbackId m_nextCallbackId;
int m_suspendCount;
WillBePersistentHeapVector<RefPtrWillBeMember<Event> > m_eventQueue;
ListHashSet<std::pair<const EventTarget*, const StringImpl*> > m_perFrameEvents;
WillBeHeapVector<RefPtrWillBeMember<Event> > m_eventQueue;
WillBeHeapListHashSet<std::pair<RawPtrWillBeMember<const EventTarget>, const StringImpl*> > m_perFrameEvents;
};
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment