Index: Source/platform/fonts/skia/SimpleFontDataSkia.cpp |
diff --git a/Source/platform/fonts/skia/SimpleFontDataSkia.cpp b/Source/platform/fonts/skia/SimpleFontDataSkia.cpp |
index 2ac44c3768002d951d47fee60d77e94d2992863e..0e20e86668f63c57737ae24ff42c47bdd1641456 100644 |
--- a/Source/platform/fonts/skia/SimpleFontDataSkia.cpp |
+++ b/Source/platform/fonts/skia/SimpleFontDataSkia.cpp |
@@ -131,11 +131,12 @@ void SimpleFontData::platformInit() |
m_fontMetrics.setLineGap(lineGap); |
m_fontMetrics.setLineSpacing(lroundf(ascent) + lroundf(descent) + lroundf(lineGap)); |
- float underlineThickness = SkScalarToFloat(metrics.fUnderlineThickness); |
- m_fontMetrics.setUnderlineThickness(underlineThickness); |
- |
- float underlinePosition = SkScalarToFloat(metrics.fUnderlinePosition); |
- m_fontMetrics.setUnderlineThickness(underlinePosition); |
+ SkScalar underlineThickness, underlinePosition; |
+ if (metrics.hasUnderlineThickness(&underlineThickness) |
+ && metrics.hasUnderlinePosition(&underlinePosition)) { |
+ m_fontMetrics.setUnderlineThickness(SkScalarToFloat(underlineThickness)); |
+ m_fontMetrics.setUnderlinePosition(SkScalarToFloat(-underlinePosition)); |
+ } |
if (platformData().orientation() == Vertical && !isTextOrientationFallback()) { |
static const uint32_t vheaTag = SkSetFourByteTag('v', 'h', 'e', 'a'); |