| Index: Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp
|
| diff --git a/Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp b/Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp
|
| index e86b3416a043de5dbefdbfdffac218352d9d6eb2..f153cca5ff85a84d9929bbde4b6b5b29ed4827fa 100644
|
| --- a/Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp
|
| +++ b/Source/core/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp
|
| @@ -42,6 +42,8 @@
|
| #include "public/platform/linux/WebFontRenderStyle.h"
|
| #include "public/platform/linux/WebSandboxSupport.h"
|
| #include "public/platform/Platform.h"
|
| +#include "wtf/text/AtomicStringHash.h"
|
| +#include "wtf/text/StringHash.h"
|
| #include "wtf/text/StringImpl.h"
|
| #include "wtf/text/WTFString.h"
|
|
|
| @@ -124,11 +126,12 @@ FontPlatformData::FontPlatformData(const FontPlatformData& src)
|
| , m_orientation(src.m_orientation)
|
| , m_style(src.m_style)
|
| , m_harfBuzzFace(src.m_harfBuzzFace)
|
| + , m_locale(src.m_locale)
|
| , m_isHashTableDeletedValue(false)
|
| {
|
| }
|
|
|
| -FontPlatformData::FontPlatformData(SkTypeface* tf, const char* family, float textSize, bool fakeBold, bool fakeItalic, FontOrientation orientation)
|
| +FontPlatformData::FontPlatformData(SkTypeface* tf, const char* family, float textSize, bool fakeBold, bool fakeItalic, FontOrientation orientation, const AtomicString& locale)
|
| : m_typeface(tf)
|
| , m_family(family)
|
| , m_textSize(textSize)
|
| @@ -136,6 +139,7 @@ FontPlatformData::FontPlatformData(SkTypeface* tf, const char* family, float tex
|
| , m_fakeBold(fakeBold)
|
| , m_fakeItalic(fakeItalic)
|
| , m_orientation(orientation)
|
| + , m_locale(locale)
|
| , m_isHashTableDeletedValue(false)
|
| {
|
| querySystemForRenderStyle();
|
| @@ -150,6 +154,7 @@ FontPlatformData::FontPlatformData(const FontPlatformData& src, float textSize)
|
| , m_fakeItalic(src.m_fakeItalic)
|
| , m_orientation(src.m_orientation)
|
| , m_harfBuzzFace(src.m_harfBuzzFace)
|
| + , m_locale(src.m_locale)
|
| , m_isHashTableDeletedValue(false)
|
| {
|
| querySystemForRenderStyle();
|
| @@ -178,6 +183,7 @@ FontPlatformData& FontPlatformData::operator=(const FontPlatformData& src)
|
| m_harfBuzzFace = src.m_harfBuzzFace;
|
| m_orientation = src.m_orientation;
|
| m_style = src.m_style;
|
| + m_locale = src.m_locale;
|
| m_emSizeInFontUnits = src.m_emSizeInFontUnits;
|
|
|
| return *this;
|
| @@ -237,6 +243,7 @@ bool FontPlatformData::operator==(const FontPlatformData& a) const
|
| && m_fakeItalic == a.m_fakeItalic
|
| && m_orientation == a.m_orientation
|
| && m_style == a.m_style
|
| + && m_locale == a.m_locale
|
| && m_isHashTableDeletedValue == a.m_isHashTableDeletedValue;
|
| }
|
|
|
| @@ -251,6 +258,7 @@ unsigned FontPlatformData::hash() const
|
| uint32_t textSizeBytes;
|
| memcpy(&textSizeBytes, &m_textSize, sizeof(uint32_t));
|
| h ^= textSizeBytes;
|
| + h ^= m_locale.isNull() ? 0 : CaseFoldingHash::hash(m_locale);
|
|
|
| return h;
|
| }
|
|
|