REGRESSION(r130643): Assertion failure when running DRT in debug mode
authorroger_fong@apple.com <roger_fong@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Nov 2012 21:11:24 +0000 (21:11 +0000)
committerroger_fong@apple.com <roger_fong@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Nov 2012 21:11:24 +0000 (21:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=101791

Reviewed by Darin Adler.

When running DRT in debug mode, we hit an assertion failure in initializing the WebKit instance.
This failure started occuring in r130643 and this work around follows the work around in r132302.

* WebKitCOMAPI.cpp:
(CLSIDHashTraits):

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

Source/WebKit/win/ChangeLog
Source/WebKit/win/WebKitCOMAPI.cpp

index f2c8483..fbf7e24 100644 (file)
@@ -1,5 +1,18 @@
 2012-11-12  Roger Fong  <roger_fong@apple.com>
 
+        REGRESSION(r130643): Assertion failure when running DRT in debug mode
+        https://bugs.webkit.org/show_bug.cgi?id=101791
+
+        Reviewed by Darin Adler.
+
+        When running DRT in debug mode, we hit an assertion failure in initializing the WebKit instance.
+        This failure started occuring in r130643 and this work around follows the work around in r132302.
+
+        * WebKitCOMAPI.cpp:
+        (CLSIDHashTraits):
+
+2012-11-12  Roger Fong  <roger_fong@apple.com>
+
         Web Inspector: Fix docking behaviour on Windows.
         https://bugs.webkit.org/show_bug.cgi?id=101978
 
index 4d8ff09..3c6f068 100644 (file)
@@ -44,6 +44,11 @@ struct CLSIDHash {
 struct CLSIDHashTraits : WTF::GenericHashTraits<CLSID> {
     static void constructDeletedValue(CLSID& slot) { slot = CLSID_NULL; }
     static bool isDeletedValue(const CLSID& value) { return value == CLSID_NULL; }
+    // FIXME: This is a work around for the regression introducing in r130643 when running DRT in debug mode on Windows.
+    // Expanding the size of the hash table causes an assertion failure ASSERT(!isDeletedBucket) when reinserting items into the new table,
+    // presumably due to the collision issues described in r132302.
+    // This work around avoids the issue entirely simply by making sure that the table will not have to resize in running DRT. 
+    static const int minimumTableSize = 64;
 };
 
 static COMPtr<IClassFactory> classFactory(const CLSID& clsid)