| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "core/animation/ListInterpolationFunctions.h" | 5 #include "core/animation/ListInterpolationFunctions.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include "core/animation/UnderlyingValueOwner.h" | 8 #include "core/animation/UnderlyingValueOwner.h" |
| 9 #include "core/css/CSSValueList.h" | 9 #include "core/css/CSSValueList.h" |
| 10 #include "wtf/MathExtras.h" | 10 #include "wtf/MathExtras.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 size_t currentLength = interpolableList.length(); | 123 size_t currentLength = interpolableList.length(); |
| 124 DCHECK_GT(currentLength, 0U); | 124 DCHECK_GT(currentLength, 0U); |
| 125 if (currentLength == length) | 125 if (currentLength == length) |
| 126 return; | 126 return; |
| 127 DCHECK_LT(currentLength, length); | 127 DCHECK_LT(currentLength, length); |
| 128 std::unique_ptr<InterpolableList> newInterpolableList = | 128 std::unique_ptr<InterpolableList> newInterpolableList = |
| 129 InterpolableList::create(length); | 129 InterpolableList::create(length); |
| 130 Vector<RefPtr<NonInterpolableValue>> newNonInterpolableValues(length); | 130 Vector<RefPtr<NonInterpolableValue>> newNonInterpolableValues(length); |
| 131 for (size_t i = length; i-- > 0;) { | 131 for (size_t i = length; i-- > 0;) { |
| 132 newInterpolableList->set( | 132 newInterpolableList->set( |
| 133 i, i < currentLength | 133 i, |
| 134 ? std::move(interpolableList.getMutable(i)) | 134 i < currentLength ? std::move(interpolableList.getMutable(i)) |
| 135 : interpolableList.get(i % currentLength)->clone()); | 135 : interpolableList.get(i % currentLength)->clone()); |
| 136 newNonInterpolableValues[i] = nonInterpolableList.get(i % currentLength); | 136 newNonInterpolableValues[i] = nonInterpolableList.get(i % currentLength); |
| 137 } | 137 } |
| 138 value.interpolableValue = std::move(newInterpolableList); | 138 value.interpolableValue = std::move(newInterpolableList); |
| 139 value.nonInterpolableValue = | 139 value.nonInterpolableValue = |
| 140 NonInterpolableList::create(std::move(newNonInterpolableValues)); | 140 NonInterpolableList::create(std::move(newNonInterpolableValues)); |
| 141 } | 141 } |
| 142 | 142 |
| 143 static bool nonInterpolableListsAreCompatible( | 143 static bool nonInterpolableListsAreCompatible( |
| 144 const NonInterpolableList& a, | 144 const NonInterpolableList& a, |
| 145 const NonInterpolableList& b, | 145 const NonInterpolableList& b, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 toNonInterpolableList(*underlyingValue.nonInterpolableValue); | 202 toNonInterpolableList(*underlyingValue.nonInterpolableValue); |
| 203 for (size_t i = 0; i < newLength; i++) { | 203 for (size_t i = 0; i < newLength; i++) { |
| 204 compositeItem(underlyingInterpolableList.getMutable(i), | 204 compositeItem(underlyingInterpolableList.getMutable(i), |
| 205 underlyingNonInterpolableList.getMutable(i), | 205 underlyingNonInterpolableList.getMutable(i), |
| 206 underlyingFraction, *interpolableList.get(i % valueLength), | 206 underlyingFraction, *interpolableList.get(i % valueLength), |
| 207 nonInterpolableList.get(i % valueLength)); | 207 nonInterpolableList.get(i % valueLength)); |
| 208 } | 208 } |
| 209 } | 209 } |
| 210 | 210 |
| 211 } // namespace blink | 211 } // namespace blink |
| OLD | NEW |