Reviewed by Kevin.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 18 Dec 2004 00:43:37 +0000 (00:43 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 18 Dec 2004 00:43:37 +0000 (00:43 +0000)
<rdar://problem/3926869> Opening caches window after running PLT causes crash

        * kjs/protected_values.cpp:
        (KJS::ProtectedValues::getProtectCount): Don't include simple numbers in
the protected value table.
        (KJS::ProtectedValues::increaseProtectCount): Ditto.
        (KJS::ProtectedValues::decreaseProtectCount): Ditto.

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

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/protected_values.cpp

index 1b2f138fe39601cb0eef7c4082139acfac885a9b..6660c8eb5749559b5d697f5fbca2c6611e837322 100644 (file)
@@ -1,3 +1,15 @@
+2004-12-17  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Kevin.
+
+       <rdar://problem/3926869> Opening caches window after running PLT causes crash
+       
+        * kjs/protected_values.cpp:
+        (KJS::ProtectedValues::getProtectCount): Don't include simple numbers in
+       the protected value table.
+        (KJS::ProtectedValues::increaseProtectCount): Ditto.
+        (KJS::ProtectedValues::decreaseProtectCount): Ditto.
+
 2004-12-16  Darin Adler  <darin@apple.com>
 
         Reviewed by Maciej.
index 9bb578aeda8b4ac28658e42aef66a86988473dd0..63481b259277e5fc4c895d1e1763b4584b9ec886 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include "protected_values.h"
+#include "simple_number.h"
 
 namespace KJS {
 
@@ -36,6 +37,9 @@ int ProtectedValues::getProtectCount(ValueImp *k)
     if (!_table)
        return 0;
 
+    if (SimpleNumber::is(k))
+      return 0;
+
     unsigned hash = computeHash(k);
     
     int i = hash & _tableSizeMask;
@@ -58,6 +62,9 @@ void ProtectedValues::increaseProtectCount(ValueImp *k)
 {
     assert(k);
 
+    if (SimpleNumber::is(k))
+      return;
+
     if (!_table)
         expand();
     
@@ -104,6 +111,9 @@ void ProtectedValues::decreaseProtectCount(ValueImp *k)
 {
     assert(k);
 
+    if (SimpleNumber::is(k))
+      return;
+
     unsigned hash = computeHash(k);
     
     ValueImp *key;