Index: Source/core/animation/InvalidatableStyleInterpolation.cpp |
diff --git a/Source/core/animation/InvalidatableStyleInterpolation.cpp b/Source/core/animation/InvalidatableStyleInterpolation.cpp |
index a036febb3441751d8240c954f430abec19523580..82eeac6da9af29426356cee524bc98590239d15e 100644 |
--- a/Source/core/animation/InvalidatableStyleInterpolation.cpp |
+++ b/Source/core/animation/InvalidatableStyleInterpolation.cpp |
@@ -126,13 +126,14 @@ void InvalidatableStyleInterpolation::apply(StyleResolverState& state) const |
ensureValidInterpolation(state, underlyingValue.get()); |
if (!m_cachedValue) |
return; |
- const InterpolableValue* appliedInterpolableValue = &m_cachedValue->interpolableValue(); |
+ const InterpolationValue* appliedValue = m_cachedValue.get(); |
if (underlyingValue && m_cachedValue->type() == underlyingValue->type()) { |
+ appliedValue = underlyingValue.get(); |
double underlyingFraction = m_cachedConversion->interpolateUnderlyingFraction(m_startKeyframe.underlyingFraction(), m_endKeyframe.underlyingFraction(), m_currentFraction); |
underlyingValue->interpolableValue().scaleAndAdd(underlyingFraction, m_cachedValue->interpolableValue()); |
- appliedInterpolableValue = &underlyingValue->interpolableValue(); |
+ underlyingValue->setNonInterpolableValue(m_cachedValue->type().mergeNonInterpolableValues(underlyingValue->nonInterpolableValue(), m_cachedValue->nonInterpolableValue())); |
dstockwell
2015/08/31 06:44:26
It seems odd to modify the underlying value. Shoul
alancutter (OOO until 2018)
2015/09/01 00:26:00
Done.
|
} |
- m_cachedValue->type().apply(*appliedInterpolableValue, m_cachedValue->nonInterpolableValue(), state); |
+ appliedValue->type().apply(appliedValue->interpolableValue(), appliedValue->nonInterpolableValue(), state); |
setFlagIfInheritUsed(state); |
} |