Index: Source/core/css/CSSPrimitiveValue.cpp |
diff --git a/Source/core/css/CSSPrimitiveValue.cpp b/Source/core/css/CSSPrimitiveValue.cpp |
index 62439ceb280f407e57f881e1ae3a198e2e408767..fcc60f0ae59b2ffbcdd252b2355a64b03f235d77 100644 |
--- a/Source/core/css/CSSPrimitiveValue.cpp |
+++ b/Source/core/css/CSSPrimitiveValue.cpp |
@@ -598,33 +598,31 @@ double CSSPrimitiveValue::computeLengthDouble(const CSSToLengthConversionData& c |
if (m_primitiveUnitType == CSS_CALC) |
return m_value.calc->computeLengthPx(conversionData); |
- const RenderStyle& style = conversionData.style(); |
- const RenderStyle* rootStyle = conversionData.rootStyle(); |
bool computingFontSize = conversionData.computingFontSize(); |
double factor; |
switch (primitiveType()) { |
case CSS_EMS: |
- factor = computingFontSize ? style.fontDescription().specifiedSize() : style.fontDescription().computedSize(); |
+ factor = computingFontSize ? conversionData.fontSpecifiedSize() : conversionData.fontComputedSize(); |
break; |
case CSS_EXS: |
// FIXME: We have a bug right now where the zoom will be applied twice to EX units. |
// We really need to compute EX using fontMetrics for the original specifiedSize and not use |
// our actual constructed rendering font. |
- if (style.fontMetrics().hasXHeight()) |
- factor = style.fontMetrics().xHeight(); |
+ if (conversionData.hasXHeight()) |
+ factor = conversionData.xHeight(); |
else |
- factor = (computingFontSize ? style.fontDescription().specifiedSize() : style.fontDescription().computedSize()) / 2.0; |
+ factor = (computingFontSize ? conversionData.fontSpecifiedSize() : conversionData.fontComputedSize()) / 2.0; |
break; |
case CSS_REMS: |
- if (rootStyle) |
- factor = computingFontSize ? rootStyle->fontDescription().specifiedSize() : rootStyle->fontDescription().computedSize(); |
+ if (conversionData.hasRoot()) |
+ factor = computingFontSize ? conversionData.rootFontSpecifiedSize() : conversionData.rootFontComputedSize(); |
else |
factor = 1.0; |
break; |
case CSS_CHS: |
- factor = style.fontMetrics().zeroWidth(); |
+ factor = conversionData.zeroWidth(); |
break; |
case CSS_PX: |
factor = 1.0; |