Give String and AtomicString an existingHash() function
authormmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Dec 2015 23:30:03 +0000 (23:30 +0000)
committermmaxfield@apple.com <mmaxfield@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Dec 2015 23:30:03 +0000 (23:30 +0000)
https://bugs.webkit.org/show_bug.cgi?id=151717

Reviewed by Andreas Kling.

Source/WebCore:

No new tests because there is no behavior change.

* platform/graphics/Font.cpp:
(WebCore::CharacterFallbackMapKeyHash::hash):

Source/WTF:

Test: WTF.AtomicStringExistingHash
      WTF.StringExistingHash

* wtf/text/AtomicString.h:
(WTF::AtomicString::existingHash):
* wtf/text/WTFString.h:
(WTF::String::existingHash):

Tools:

* TestWebKitAPI/Tests/WTF/AtomicString.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::TEST):

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

Source/WTF/ChangeLog
Source/WTF/wtf/text/AtomicString.h
Source/WTF/wtf/text/WTFString.h
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/Font.cpp
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WTF/AtomicString.cpp
Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp

index 2cf60d0..01efaf8 100644 (file)
@@ -1,3 +1,18 @@
+2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Give String and AtomicString an existingHash() function
+        https://bugs.webkit.org/show_bug.cgi?id=151717
+
+        Reviewed by Andreas Kling.
+
+        Test: WTF.AtomicStringExistingHash
+              WTF.StringExistingHash
+
+        * wtf/text/AtomicString.h:
+        (WTF::AtomicString::existingHash):
+        * wtf/text/WTFString.h:
+        (WTF::String::existingHash):
+
 2015-12-01  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
index 9dc3afd..6233baa 100644 (file)
@@ -88,6 +88,8 @@ public:
     AtomicString(WTF::HashTableDeletedValueType) : m_string(WTF::HashTableDeletedValue) { }
     bool isHashTableDeletedValue() const { return m_string.isHashTableDeletedValue(); }
 
+    unsigned existingHash() const { return isNull() ? 0 : impl()->existingHash(); }
+
     operator const String&() const { return m_string; }
     const String& string() const { return m_string; };
 
index 0ff64f6..d0899cf 100644 (file)
@@ -463,6 +463,8 @@ public:
     String(WTF::HashTableDeletedValueType) : m_impl(WTF::HashTableDeletedValue) { }
     bool isHashTableDeletedValue() const { return m_impl.isHashTableDeletedValue(); }
 
+    unsigned existingHash() const { return isNull() ? 0 : impl()->existingHash(); }
+
 #ifndef NDEBUG
     WTF_EXPORT_STRING_API void show() const;
 #endif
index cf4e4fd..6f03f88 100644 (file)
@@ -1,5 +1,17 @@
 2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
 
+        Give String and AtomicString an existingHash() function
+        https://bugs.webkit.org/show_bug.cgi?id=151717
+
+        Reviewed by Andreas Kling.
+
+        No new tests because there is no behavior change.
+
+        * platform/graphics/Font.cpp:
+        (WebCore::CharacterFallbackMapKeyHash::hash):
+
+2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
+
         [Win] Build fix after r192895
 
         Unreviewed.
index 825ad3c..10a30e0 100644 (file)
@@ -426,7 +426,7 @@ struct CharacterFallbackMapKeyHash {
         IntegerHasher hasher;
         hasher.add(key.character);
         hasher.add(key.isForPlatformFont);
-        hasher.add(key.locale.isNull() ? 0 : key.locale.impl()->existingHash());
+        hasher.add(key.locale.existingHash());
         return hasher.hash();
     }
 
index d2cc028..f5b6155 100644 (file)
@@ -1,3 +1,15 @@
+2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Give String and AtomicString an existingHash() function
+        https://bugs.webkit.org/show_bug.cgi?id=151717
+
+        Reviewed by Andreas Kling.
+
+        * TestWebKitAPI/Tests/WTF/AtomicString.cpp:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WTF/WTFString.cpp:
+        (TestWebKitAPI::TEST):
+
 2015-12-01  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature
index e239431..de962ec 100644 (file)
@@ -53,4 +53,12 @@ TEST(WTF, AtomicStringCreationFromLiteralUniqueness)
     ASSERT_EQ(string1.impl(), string3.impl());
 }
 
+TEST(WTF, AtomicStringExistingHash)
+{
+    AtomicString string1("Template Literal", AtomicString::ConstructFromLiteral);
+    ASSERT_EQ(string1.existingHash(), string1.impl()->existingHash());
+    AtomicString string2;
+    ASSERT_EQ(string2.existingHash(), 0u);
+}
+
 } // namespace TestWebKitAPI
index a13ca0a..13a6496 100644 (file)
@@ -281,4 +281,15 @@ TEST(WTF, StringhasInfixStartingAt)
     EXPECT_FALSE(String("Test").hasInfixStartingAt(String::fromUTF8("δΈ­"), 2));
 }
 
+TEST(WTF, StringExistingHash)
+{
+    String string1("Template Literal");
+    ASSERT_FALSE(string1.isNull());
+    ASSERT_FALSE(string1.impl()->hasHash());
+    string1.impl()->hash();
+    ASSERT_EQ(string1.existingHash(), string1.impl()->existingHash());
+    String string2;
+    ASSERT_EQ(string2.existingHash(), 0u);
+}
+
 } // namespace TestWebKitAPI