Modern IDB: Fix up IDBDatabaseIdentifier hash issues.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jan 2016 02:09:36 +0000 (02:09 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jan 2016 02:09:36 +0000 (02:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=152822

Reviewed by Alex Christensen.

No new tests (No explicitly testable behavior change, existing tests pass, flakiness will be reduced).

* Modules/indexeddb/IDBDatabaseIdentifier.h:
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isEmpty):
(WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):
* page/SecurityOriginData.h:

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

Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBDatabaseIdentifier.h
Source/WebCore/page/SecurityOriginData.h

index 4e85dfa..dd44def 100644 (file)
@@ -1,3 +1,18 @@
+2016-01-06  Brady Eidson  <beidson@apple.com>
+
+        Modern IDB: Fix up IDBDatabaseIdentifier hash issues.
+        https://bugs.webkit.org/show_bug.cgi?id=152822
+
+        Reviewed by Alex Christensen.
+
+        No new tests (No explicitly testable behavior change, existing tests pass, flakiness will be reduced).
+
+        * Modules/indexeddb/IDBDatabaseIdentifier.h:
+        (WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
+        (WebCore::IDBDatabaseIdentifier::isEmpty):
+        (WebCore::IDBDatabaseIdentifierHashTraits::isEmptyValue):
+        * page/SecurityOriginData.h:
+
 2016-01-06  Simon Fraser  <simon.fraser@apple.com>
 
         Sort the project file.
index b3776ba..d7687be 100644 (file)
@@ -42,6 +42,8 @@ class IDBDatabaseIdentifier {
 public:
     IDBDatabaseIdentifier()
     {
+        m_openingOrigin.port = -2;
+        m_mainFrameOrigin.port = -2;
     }
 
     IDBDatabaseIdentifier(WTF::HashTableDeletedValueType)
@@ -76,6 +78,11 @@ public:
         return !m_databaseName.isNull() && m_openingOrigin.port >= 0 && m_mainFrameOrigin.port >= 0;
     }
 
+    bool isEmpty() const
+    {
+        return m_openingOrigin.port == -2 && m_mainFrameOrigin.port == -2;
+    }
+
     bool operator==(const IDBDatabaseIdentifier& other) const
     {
         return other.m_databaseName == m_databaseName
@@ -103,7 +110,8 @@ struct IDBDatabaseIdentifierHash {
 
 struct IDBDatabaseIdentifierHashTraits : WTF::SimpleClassHashTraits<IDBDatabaseIdentifier> {
     static const bool hasIsEmptyValueFunction = true;
-    static bool isEmptyValue(const IDBDatabaseIdentifier& info) { return !info.isValid(); }
+    static const bool emptyValueIsZero = false;
+    static bool isEmptyValue(const IDBDatabaseIdentifier& info) { return info.isEmpty(); }
 };
 
 } // namespace WebCore
index 99307b0..b6eb165 100644 (file)
@@ -43,7 +43,7 @@ struct SecurityOriginData {
 
     String protocol;
     String host;
-    int port;
+    int port { 0 };
 
     WEBCORE_EXPORT SecurityOriginData isolatedCopy() const;