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

Side by Side Diff: Source/core/animation/InterpolableValue.cpp

Issue 212213007: Oilpan: Move InterpolableValue's hierarchy to oilpan's heap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/animation/InterpolableValue.h" 6 #include "core/animation/InterpolableValue.h"
7 7
8 namespace WebCore { 8 namespace WebCore {
9 9
10 PassOwnPtr<InterpolableValue> InterpolableNumber::interpolate(const Interpolable Value &to, const double progress) const 10 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(InterpolableValue);
11
12 PassOwnPtrWillBeRawPtr<InterpolableValue> InterpolableNumber::interpolate(const InterpolableValue &to, const double progress) const
11 { 13 {
12 const InterpolableNumber* toNumber = toInterpolableNumber(&to); 14 const InterpolableNumber* toNumber = toInterpolableNumber(&to);
13 if (!progress) 15 if (!progress)
14 return create(m_value); 16 return create(m_value);
15 if (progress == 1) 17 if (progress == 1)
16 return create(toNumber->m_value); 18 return create(toNumber->m_value);
17 return create(m_value * (1 - progress) + toNumber->m_value * progress); 19 return create(m_value * (1 - progress) + toNumber->m_value * progress);
18 } 20 }
19 21
20 PassOwnPtr<InterpolableValue> InterpolableBool::interpolate(const InterpolableVa lue &to, const double progress) const 22 PassOwnPtrWillBeRawPtr<InterpolableValue> InterpolableBool::interpolate(const In terpolableValue &to, const double progress) const
21 { 23 {
22 if (progress < 0.5) { 24 if (progress < 0.5) {
23 return clone(); 25 return clone();
24 } 26 }
25 return to.clone(); 27 return to.clone();
26 } 28 }
27 29
28 PassOwnPtr<InterpolableValue> InterpolableList::interpolate(const InterpolableVa lue &to, const double progress) const 30 PassOwnPtrWillBeRawPtr<InterpolableValue> InterpolableList::interpolate(const In terpolableValue &to, const double progress) const
29 { 31 {
30 const InterpolableList* toList = toInterpolableList(&to); 32 const InterpolableList* toList = toInterpolableList(&to);
31 ASSERT(toList->m_size == m_size); 33 ASSERT(toList->m_size == m_size);
32 34
33 if (!progress) { 35 if (!progress) {
34 return create(*this); 36 return create(*this);
35 } 37 }
36 if (progress == 1) { 38 if (progress == 1) {
37 return InterpolableList::create(*toList); 39 return InterpolableList::create(*toList);
38 } 40 }
39 41
40 OwnPtr<InterpolableList> result = create(m_size); 42 OwnPtrWillBeRawPtr<InterpolableList> result = create(m_size);
41 for (size_t i = 0; i < m_size; i++) { 43 for (size_t i = 0; i < m_size; i++) {
42 ASSERT(m_values.get()[i]); 44 ASSERT(m_values[i]);
43 ASSERT(toList->m_values.get()[i]); 45 ASSERT(toList->m_values[i]);
44 result->set(i, m_values.get()[i]->interpolate(*(toList->m_values.get()[i ]), progress)); 46 result->set(i, m_values[i]->interpolate(*(toList->m_values[i]), progress ));
45 } 47 }
46 return result.release(); 48 return result.release();
47 } 49 }
48 50
49 PassOwnPtr<InterpolableValue> InterpolableAnimatableValue::interpolate(const Int erpolableValue &other, const double percentage) const 51 void InterpolableList::trace(Visitor* visitor)
52 {
53 #if ENABLE_OILPAN
54 visitor->trace(m_values);
55 #endif
56 }
57
58 PassOwnPtrWillBeRawPtr<InterpolableValue> InterpolableAnimatableValue::interpola te(const InterpolableValue &other, const double percentage) const
50 { 59 {
51 const InterpolableAnimatableValue *otherValue = toInterpolableAnimatableValu e(&other); 60 const InterpolableAnimatableValue *otherValue = toInterpolableAnimatableValu e(&other);
52 if (!percentage) 61 if (!percentage)
53 return create(m_value); 62 return create(m_value);
54 if (percentage == 1) 63 if (percentage == 1)
55 return create(otherValue->m_value); 64 return create(otherValue->m_value);
56 return create(AnimatableValue::interpolate(m_value.get(), otherValue->m_valu e.get(), percentage)); 65 return create(AnimatableValue::interpolate(m_value.get(), otherValue->m_valu e.get(), percentage));
57 } 66 }
58 67
68 void InterpolableAnimatableValue::trace(Visitor* visitor)
69 {
70 visitor->trace(m_value);
59 } 71 }
72
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698