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) ...@@ -5841,6 +5841,7 @@ void Document::trace(Visitor* visitor)
visitor->trace(m_contextFeatures); visitor->trace(m_contextFeatures);
visitor->trace(m_styleSheetList); visitor->trace(m_styleSheetList);
visitor->trace(m_mediaQueryMatcher); visitor->trace(m_mediaQueryMatcher);
visitor->trace(m_scriptedAnimationController);
visitor->trace(m_registrationContext); visitor->trace(m_registrationContext);
visitor->trace(m_associatedFormControls); visitor->trace(m_associatedFormControls);
visitor->trace(m_useElementsNeedingUpdate); visitor->trace(m_useElementsNeedingUpdate);
......
...@@ -1385,7 +1385,7 @@ private: ...@@ -1385,7 +1385,7 @@ private:
OwnPtr<TouchEventTargetSet> m_touchEventTargets; OwnPtr<TouchEventTargetSet> m_touchEventTargets;
RefPtr<ScriptedAnimationController> m_scriptedAnimationController; RefPtrWillBeMember<ScriptedAnimationController> m_scriptedAnimationController;
OwnPtr<MainThreadTaskRunner> m_taskRunner; OwnPtr<MainThreadTaskRunner> m_taskRunner;
OwnPtr<TextAutosizer> m_textAutosizer; OwnPtr<TextAutosizer> m_textAutosizer;
OwnPtr<FastTextAutosizer> m_fastTextAutosizer; OwnPtr<FastTextAutosizer> m_fastTextAutosizer;
......
...@@ -53,6 +53,15 @@ ScriptedAnimationController::~ScriptedAnimationController() ...@@ -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() void ScriptedAnimationController::suspend()
{ {
++m_suspendCount; ++m_suspendCount;
...@@ -168,7 +177,7 @@ void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTime ...@@ -168,7 +177,7 @@ void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTime
if (m_suspendCount) if (m_suspendCount)
return; return;
RefPtr<ScriptedAnimationController> protect(this); RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this);
dispatchEvents(); dispatchEvents();
executeCallbacks(monotonicTimeNow); executeCallbacks(monotonicTimeNow);
......
...@@ -40,14 +40,15 @@ class Event; ...@@ -40,14 +40,15 @@ class Event;
class EventTarget; class EventTarget;
class RequestAnimationFrameCallback; class RequestAnimationFrameCallback;
class ScriptedAnimationController : public RefCounted<ScriptedAnimationController> { class ScriptedAnimationController : public RefCountedWillBeGarbageCollectedFinalized<ScriptedAnimationController> {
public: public:
static PassRefPtr<ScriptedAnimationController> create(Document* document) static PassRefPtrWillBeRawPtr<ScriptedAnimationController> create(Document* document)
{ {
return adoptRef(new ScriptedAnimationController(document)); return adoptRefWillBeNoop(new ScriptedAnimationController(document));
} }
~ScriptedAnimationController(); ~ScriptedAnimationController();
void clearDocumentPointer() { m_document = 0; } void trace(Visitor*);
void clearDocumentPointer() { m_document = nullptr; }
typedef int CallbackId; typedef int CallbackId;
...@@ -73,11 +74,11 @@ private: ...@@ -73,11 +74,11 @@ private:
CallbackList m_callbacks; CallbackList m_callbacks;
CallbackList m_callbacksToInvoke; // only non-empty while inside executeCallbacks CallbackList m_callbacksToInvoke; // only non-empty while inside executeCallbacks
Document* m_document; RawPtrWillBeMember<Document> m_document;
CallbackId m_nextCallbackId; CallbackId m_nextCallbackId;
int m_suspendCount; int m_suspendCount;
WillBePersistentHeapVector<RefPtrWillBeMember<Event> > m_eventQueue; WillBeHeapVector<RefPtrWillBeMember<Event> > m_eventQueue;
ListHashSet<std::pair<const EventTarget*, const StringImpl*> > m_perFrameEvents; 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