Bug 189541 - Build error in FontDescriptionKey::computeHash when compiling FontTagged...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Sep 2018 18:33:44 +0000 (18:33 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Sep 2018 18:33:44 +0000 (18:33 +0000)
https://bugs.webkit.org/show_bug.cgi?id=189541

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-14
Reviewed by Alex Christensen.

FontDescriptionKey::computeHash() from In FontCache.h requires implicit instantiation of the
FontTaggedSettings::hash() template function. This instantiation may happen before
FontTaggedSettings::hash() is actually fully specialized in FontTaggedSettings.cpp. To avoid
compiler errors when FontCache.h and FontTaggedSettings.cpp are in the same translation unit,
we declare full specialization of the hash() functions in FontTaggedSettings.h.

No new tests, behavior unchanged.

* platform/graphics/FontCache.h: Explicitly include FontTaggedSettings to avoid possible future breakage.
* platform/graphics/FontTaggedSettings.h: Declare full specialization of FontTaggedSettings::hash().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236013 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/FontCache.h
Source/WebCore/platform/graphics/FontTaggedSettings.h

index 0c1a48e..fc89081 100644 (file)
@@ -1,3 +1,21 @@
+2018-09-14  Frederic Wang  <fwang@igalia.com>
+
+        Bug 189541 - Build error in FontDescriptionKey::computeHash when compiling FontTaggedSettings and FontCascadeFonts together
+        https://bugs.webkit.org/show_bug.cgi?id=189541
+
+        Reviewed by Alex Christensen.
+
+        FontDescriptionKey::computeHash() from In FontCache.h requires implicit instantiation of the
+        FontTaggedSettings::hash() template function. This instantiation may happen before
+        FontTaggedSettings::hash() is actually fully specialized in FontTaggedSettings.cpp. To avoid
+        compiler errors when FontCache.h and FontTaggedSettings.cpp are in the same translation unit,
+        we declare full specialization of the hash() functions in FontTaggedSettings.h.
+
+        No new tests, behavior unchanged.
+
+        * platform/graphics/FontCache.h: Explicitly include FontTaggedSettings to avoid possible future breakage.
+        * platform/graphics/FontTaggedSettings.h: Declare full specialization of FontTaggedSettings::hash().
+
 2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r235990.
index 8564db9..e95d2da 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "FontDescription.h"
 #include "FontPlatformData.h"
+#include "FontTaggedSettings.h"
 #include "Timer.h"
 #include <array>
 #include <limits.h>
index 23ca2ee..b57457e 100644 (file)
@@ -139,11 +139,15 @@ void FontTaggedSettings<T>::insert(FontTaggedSetting<T>&& feature)
 typedef FontTaggedSetting<int> FontFeature;
 typedef FontTaggedSettings<int> FontFeatureSettings;
 
+template <> unsigned FontFeatureSettings::hash() const;
+
 #if ENABLE(VARIATION_FONTS)
 
 typedef FontTaggedSettings<float> FontVariationSettings;
 WTF::TextStream& operator<<(WTF::TextStream&, const FontVariationSettings&);
 
+template <> unsigned FontVariationSettings::hash() const;
+
 #else
 
 struct FontVariationSettings {