Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Unified Diff: Source/core/animation/Animation.h

Issue 1120003002: [Oilpan] Migrate most classes under core/animations to Oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/animation/AngleSVGInterpolation.h ('k') | Source/core/animation/Animation.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/Animation.h
diff --git a/Source/core/animation/Animation.h b/Source/core/animation/Animation.h
index 58a0dc4ceccf5aefe6d58b95303f2548a59b025d..aa677ce0d2af5da7406d7202f5a00ab670ba7a22 100644
--- a/Source/core/animation/Animation.h
+++ b/Source/core/animation/Animation.h
@@ -51,16 +51,15 @@ class Element;
class ExceptionState;
class WebCompositorAnimationPlayer;
-class CORE_EXPORT Animation final
- : public EventTargetWithInlineData
- , public RefCountedWillBeNoBase<Animation>
- , public ActiveDOMObject
- , public WebCompositorAnimationDelegate
- , public WebCompositorAnimationPlayerClient {
+class CORE_EXPORT Animation final : public RefCountedGarbageCollectedEventTargetWithInlineData<Animation>, public ActiveDOMObject, public WebCompositorAnimationDelegate, public WebCompositorAnimationPlayerClient {
DEFINE_WRAPPERTYPEINFO();
- REFCOUNTED_EVENT_TARGET(Animation);
+ REFCOUNTED_GARBAGE_COLLECTED_EVENT_TARGET(Animation);
WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(Animation);
- WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(Animation);
+#if ENABLE(LAZY_SWEEPING)
+ EAGERLY_FINALIZE();
+#else
+ USING_PRE_FINALIZER(Animation, disposeAnimation);
+#endif
public:
enum AnimationPlayState {
Idle,
@@ -71,7 +70,8 @@ public:
};
~Animation();
- static PassRefPtrWillBeRawPtr<Animation> create(AnimationEffect*, AnimationTimeline*);
+ void disposeAnimation();
+ static Animation* create(AnimationEffect*, AnimationTimeline*);
// Returns whether the animation is finished.
bool update(TimingUpdateReason);
@@ -138,8 +138,8 @@ public:
void setStartClip(double t) { setStartClipInternal(t / 1000); }
void setEndClip(double t) { setEndClipInternal(t / 1000); }
- const AnimationEffect* effect() const { return m_content.get(); }
- AnimationEffect* effect() { return m_content.get(); }
+ const AnimationEffect* effect() const { return m_content; }
+ AnimationEffect* effect() { return m_content; }
void setEffect(AnimationEffect*);
// Pausing via this method is not reflected in the value returned by
@@ -230,12 +230,12 @@ private:
unsigned m_sequenceNumber;
- typedef ScriptPromiseProperty<RawPtrWillBeMember<Animation>, RawPtrWillBeMember<Animation>, Member<DOMException>> AnimationPromise;
- PersistentWillBeMember<AnimationPromise> m_finishedPromise;
- PersistentWillBeMember<AnimationPromise> m_readyPromise;
+ typedef ScriptPromiseProperty<Member<Animation>, Member<Animation>, Member<DOMException>> AnimationPromise;
+ Member<AnimationPromise> m_finishedPromise;
+ Member<AnimationPromise> m_readyPromise;
- RefPtrWillBeMember<AnimationEffect> m_content;
- RawPtrWillBeMember<AnimationTimeline> m_timeline;
+ Member<AnimationEffect> m_content;
+ Member<AnimationTimeline> m_timeline;
// Reflects all pausing, including via pauseForTesting().
bool m_paused;
bool m_held;
@@ -289,7 +289,7 @@ private:
PlayStateUpdateScope(Animation&, TimingUpdateReason, CompositorPendingChange = SetCompositorPending);
~PlayStateUpdateScope();
private:
- RawPtrWillBeMember<Animation> m_animation;
+ Member<Animation> m_animation;
AnimationPlayState m_initialPlayState;
CompositorPendingChange m_compositorPendingChange;
};
« no previous file with comments | « Source/core/animation/AngleSVGInterpolation.h ('k') | Source/core/animation/Animation.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698