Use an enum class for createFontFamilyValue()'s fromSystemFontID argument
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jan 2015 18:24:48 +0000 (18:24 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jan 2015 18:24:48 +0000 (18:24 +0000)
https://bugs.webkit.org/show_bug.cgi?id=140981

Reviewed by Darin Adler.

Use an enum class for createFontFamilyValue()'s fromSystemFontID argument
instead of a simple enum, as suggested by Sam. This is a bit nicer.

Also, use a boolean type for CSSFontFamily.fromSystemFontID instead of
the enum type to facilitate handling. Using a enum (class) for
CSSFontFamily's fromSystemFontID member is not useful as it is always
accessed by name.

* css/CSSFontFamily.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSystemFont):
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createFontFamilyValue):
* css/CSSValuePool.h:

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

Source/WebCore/ChangeLog
Source/WebCore/css/CSSFontFamily.h
Source/WebCore/css/CSSParser.cpp
Source/WebCore/css/CSSValuePool.cpp
Source/WebCore/css/CSSValuePool.h

index 846c012..07fbab6 100644 (file)
@@ -1,5 +1,27 @@
 2015-01-28  Chris Dumez  <cdumez@apple.com>
 
+        Use an enum class for createFontFamilyValue()'s fromSystemFontID argument
+        https://bugs.webkit.org/show_bug.cgi?id=140981
+
+        Reviewed by Darin Adler.
+
+        Use an enum class for createFontFamilyValue()'s fromSystemFontID argument
+        instead of a simple enum, as suggested by Sam. This is a bit nicer.
+
+        Also, use a boolean type for CSSFontFamily.fromSystemFontID instead of
+        the enum type to facilitate handling. Using a enum (class) for
+        CSSFontFamily's fromSystemFontID member is not useful as it is always
+        accessed by name.
+
+        * css/CSSFontFamily.h:
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseSystemFont):
+        * css/CSSValuePool.cpp:
+        (WebCore::CSSValuePool::createFontFamilyValue):
+        * css/CSSValuePool.h:
+
+2015-01-28  Chris Dumez  <cdumez@apple.com>
+
         Fix typo in markPagesForVistedLinkStyleRecalc()
         https://bugs.webkit.org/show_bug.cgi?id=140977
 
index 85f0204..e1f32da 100644 (file)
@@ -39,11 +39,9 @@ namespace WebCore {
 // FontDescription. This flag is used to determine if we should do the "use backslash as Yen
 // sign" hack.
 
-enum FromSystemFontIDOrNot { NotFromSystemFontID, FromSystemFontID };
-
 struct CSSFontFamily {
     String familyName;
-    FromSystemFontIDOrNot fromSystemFontID;
+    bool fromSystemFontID;
 };
 
 inline bool operator==(const CSSFontFamily& a, const CSSFontFamily& b)
index 9f67151..b7e236a 100644 (file)
@@ -6320,7 +6320,7 @@ void CSSParser::parseSystemFont(bool important)
     addProperty(CSSPropertyFontWeight, cssValuePool().createValue(fontDescription.weight()), important);
     addProperty(CSSPropertyFontSize, cssValuePool().createValue(fontDescription.specifiedSize(), CSSPrimitiveValue::CSS_PX), important);
     Ref<CSSValueList> fontFamilyList = CSSValueList::createCommaSeparated();
-    fontFamilyList->append(cssValuePool().createFontFamilyValue(fontDescription.familyAt(0), FromSystemFontID));
+    fontFamilyList->append(cssValuePool().createFontFamilyValue(fontDescription.familyAt(0), FromSystemFontID::Yes));
     addProperty(CSSPropertyFontFamily, WTF::move(fontFamilyList), important);
     addProperty(CSSPropertyFontVariant, cssValuePool().createIdentifierValue(CSSValueNormal), important);
     addProperty(CSSPropertyLineHeight, cssValuePool().createIdentifierValue(CSSValueNormal), important);
index 5c94b27..1f41311 100644 (file)
@@ -119,16 +119,17 @@ Ref<CSSPrimitiveValue> CSSValuePool::createValue(double value, CSSPrimitiveValue
     return *cache[intValue];
 }
 
-Ref<CSSPrimitiveValue> CSSValuePool::createFontFamilyValue(const String& familyName, FromSystemFontIDOrNot fromSystemFontID)
+Ref<CSSPrimitiveValue> CSSValuePool::createFontFamilyValue(const String& familyName, FromSystemFontID fromSystemFontID)
 {
     // Remove one entry at random if the cache grows too large.
     const int maximumFontFamilyCacheSize = 128;
     if (m_fontFamilyValueCache.size() >= maximumFontFamilyCacheSize)
         m_fontFamilyValueCache.remove(m_fontFamilyValueCache.begin());
 
-    RefPtr<CSSPrimitiveValue>& value = m_fontFamilyValueCache.add({familyName, fromSystemFontID}, nullptr).iterator->value;
+    bool isFromSystemID = fromSystemFontID == FromSystemFontID::Yes;
+    RefPtr<CSSPrimitiveValue>& value = m_fontFamilyValueCache.add({familyName, isFromSystemID}, nullptr).iterator->value;
     if (!value)
-        value = CSSPrimitiveValue::create(CSSFontFamily{familyName, fromSystemFontID});
+        value = CSSPrimitiveValue::create(CSSFontFamily{familyName, isFromSystemID});
     return *value;
 }
 
index aac736c..4ec1856 100644 (file)
@@ -42,11 +42,13 @@ namespace WebCore {
 
 class CSSValueList;
 
+enum class FromSystemFontID { No, Yes };
+
 class CSSValuePool {
     WTF_MAKE_FAST_ALLOCATED;
 public:
     PassRefPtr<CSSValueList> createFontFaceValue(const AtomicString&);
-    Ref<CSSPrimitiveValue> createFontFamilyValue(const String&, FromSystemFontIDOrNot = NotFromSystemFontID);
+    Ref<CSSPrimitiveValue> createFontFamilyValue(const String&, FromSystemFontID = FromSystemFontID::No);
     Ref<CSSInheritedValue> createInheritedValue() { return m_inheritedValue.copyRef(); }
     Ref<CSSInitialValue> createImplicitInitialValue() { return m_implicitInitialValue.copyRef(); }
     Ref<CSSInitialValue> createExplicitInitialValue() { return m_explicitInitialValue.copyRef(); }