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

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

Issue 225073004: Oilpan: Completely move core/animations/ to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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
Index: Source/core/animation/TimedItem.h
diff --git a/Source/core/animation/TimedItem.h b/Source/core/animation/TimedItem.h
index 6e026dd27961ef6d9ca087425b3d3736f3e6c7b5..cd682bb80e10fc47049d2a7a4b71004981e35975 100644
--- a/Source/core/animation/TimedItem.h
+++ b/Source/core/animation/TimedItem.h
@@ -32,6 +32,7 @@
#define TimedItem_h
#include "core/animation/Timing.h"
+#include "platform/heap/Handle.h"
#include "wtf/OwnPtr.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/RefCounted.h"
@@ -57,7 +58,7 @@ static inline double nullValue()
return std::numeric_limits<double>::quiet_NaN();
}
-class TimedItem : public RefCounted<TimedItem> {
+class TimedItem : public RefCountedWillBeGarbageCollectedFinalized<TimedItem> {
friend class AnimationPlayer; // Calls attach/detach, updateInheritedTime.
public:
// Note that logic in CSSAnimations depends on the order of these values.
@@ -103,15 +104,17 @@ public:
AnimationPlayer* player() { return m_player; }
AnimationPlayer* player(bool& isNull) { isNull = !m_player; return m_player; }
const Timing& specifiedTiming() const { return m_timing; }
- PassRefPtr<TimedItemTiming> timing();
+ PassRefPtrWillBeRawPtr<TimedItemTiming> timing();
void updateSpecifiedTiming(const Timing&);
// This method returns time in ms as it is unused except via the API.
double localTime(bool& isNull) const { isNull = !m_player; return ensureCalculated().localTime * 1000; }
double currentIteration(bool& isNull) const { isNull = !ensureCalculated().isInEffect; return ensureCalculated().currentIteration; }
+ virtual void trace(Visitor*);
+
protected:
- TimedItem(const Timing&, PassOwnPtr<EventDelegate> = nullptr);
+ explicit TimedItem(const Timing&, PassOwnPtr<EventDelegate> = nullptr);
// When TimedItem receives a new inherited time via updateInheritedTime
// it will (if necessary) recalculate timings and (if necessary) call
@@ -121,34 +124,28 @@ protected:
bool hasEvents() const { return m_eventDelegate; }
void clearEventDelegate() { m_eventDelegate = nullptr; }
-private:
+ virtual void attach(AnimationPlayer* player)
+ {
+ m_player = player;
+ }
+
+ virtual void detach()
+ {
+ ASSERT(m_player);
+ m_player = nullptr;
+ }
double repeatedDuration() const;
virtual void updateChildrenAndEffects() const = 0;
virtual double intrinsicIterationDuration() const { return 0; };
virtual double calculateTimeToEffectChange(bool forwards, double localTime, double timeToNextIteration) const = 0;
- virtual void didAttach() { };
- virtual void willDetach() { };
- virtual void specifiedTimingChanged() { };
-
- void attach(AnimationPlayer* player)
- {
- m_player = player;
- didAttach();
- };
-
- void detach()
- {
- ASSERT(m_player);
- willDetach();
- m_player = 0;
- };
+ virtual void specifiedTimingChanged() { }
// FIXME: m_parent and m_startTime are placeholders, they depend on timing groups.
- TimedItem* const m_parent;
+ RawPtrWillBeMember<TimedItem> m_parent;
const double m_startTime;
- AnimationPlayer* m_player;
+ RawPtrWillBeMember<AnimationPlayer> m_player;
Timing m_timing;
OwnPtr<EventDelegate> m_eventDelegate;

Powered by Google App Engine
This is Rietveld 408576698