Index: Source/core/rendering/svg/SVGTextLayoutEngineSpacing.cpp |
diff --git a/Source/core/rendering/svg/SVGTextLayoutEngineSpacing.cpp b/Source/core/rendering/svg/SVGTextLayoutEngineSpacing.cpp |
index 282d5bc4eacd332a129f1c80a34e63a6b299c73c..39683386a79e18f7194c3d6f3fbc7cbf18e08e61 100644 |
--- a/Source/core/rendering/svg/SVGTextLayoutEngineSpacing.cpp |
+++ b/Source/core/rendering/svg/SVGTextLayoutEngineSpacing.cpp |
@@ -37,15 +37,18 @@ namespace WebCore { |
SVGTextLayoutEngineSpacing::SVGTextLayoutEngineSpacing(const Font& font) |
: m_font(font) |
, m_lastCharacter(0) |
+#if ENABLE(SVG_FONTS) |
+ , m_lastGlyph(0) |
+#endif |
{ |
} |
-float SVGTextLayoutEngineSpacing::calculateSVGKerning(bool isVerticalText, const SVGTextMetrics::Glyph& currentGlyph) |
+float SVGTextLayoutEngineSpacing::calculateSVGKerning(bool isVerticalText, Glyph currentGlyph) |
{ |
#if ENABLE(SVG_FONTS) |
const SimpleFontData* fontData = m_font.primaryFont(); |
if (!fontData->isSVGFont()) { |
- m_lastGlyph.isValid = false; |
+ m_lastGlyph = 0; |
return 0; |
} |
@@ -59,24 +62,24 @@ float SVGTextLayoutEngineSpacing::calculateSVGKerning(bool isVerticalText, const |
SVGFontElement* svgFont = svgFontFace->associatedFontElement(); |
if (!svgFont) { |
- m_lastGlyph.isValid = false; |
+ m_lastGlyph = 0; |
return 0; |
} |
float kerning = 0; |
- if (m_lastGlyph.isValid) { |
+ if (m_lastGlyph) { |
if (isVerticalText) |
- kerning = svgFont->verticalKerningForPairOfStringsAndGlyphs(m_lastGlyph.unicodeString, m_lastGlyph.name, currentGlyph.unicodeString, currentGlyph.name); |
+ kerning = svgFont->verticalKerningForPairOfGlyphs(m_lastGlyph, currentGlyph); |
else |
- kerning = svgFont->horizontalKerningForPairOfStringsAndGlyphs(m_lastGlyph.unicodeString, m_lastGlyph.name, currentGlyph.unicodeString, currentGlyph.name); |
+ kerning = svgFont->horizontalKerningForPairOfGlyphs(m_lastGlyph, currentGlyph); |
+ |
+ kerning *= m_font.fontDescription().computedSize() / m_font.fontMetrics().unitsPerEm(); |
} |
m_lastGlyph = currentGlyph; |
- m_lastGlyph.isValid = true; |
- kerning *= m_font.fontDescription().computedSize() / m_font.fontMetrics().unitsPerEm(); |
return kerning; |
#else |
- return false; |
+ return 0; |
#endif |
} |