Title: [121928] trunk/Source/_javascript_Core
Revision
121928
Author
msab...@apple.com
Date
2012-07-05 17:04:05 -0700 (Thu, 05 Jul 2012)

Log Message

JSString::tryHashConstLock() fails to get exclusive lock
https://bugs.webkit.org/show_bug.cgi?id=90639

Reviewed by Oliver Hunt.

Added check that the string is already locked even before compare and swap.

* heap/MarkStack.cpp:
(JSC::JSString::tryHashConstLock):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (121927 => 121928)


--- trunk/Source/_javascript_Core/ChangeLog	2012-07-05 23:31:00 UTC (rev 121927)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-07-06 00:04:05 UTC (rev 121928)
@@ -1,3 +1,15 @@
+2012-07-05  Michael Saboff  <msab...@apple.com>
+
+        JSString::tryHashConstLock() fails to get exclusive lock
+        https://bugs.webkit.org/show_bug.cgi?id=90639
+
+        Reviewed by Oliver Hunt.
+
+        Added check that the string is already locked even before compare and swap.
+
+        * heap/MarkStack.cpp:
+        (JSC::JSString::tryHashConstLock):
+
 2012-07-04  Filip Pizlo  <fpi...@apple.com>
 
         Inline property storage should not be wasted when it is exhausted

Modified: trunk/Source/_javascript_Core/heap/MarkStack.cpp (121927 => 121928)


--- trunk/Source/_javascript_Core/heap/MarkStack.cpp	2012-07-05 23:31:00 UTC (rev 121927)
+++ trunk/Source/_javascript_Core/heap/MarkStack.cpp	2012-07-06 00:04:05 UTC (rev 121928)
@@ -546,6 +546,10 @@
 {
 #if ENABLE(PARALLEL_GC)
     unsigned currentFlags = m_flags;
+
+    if (currentFlags & HashConstLock)
+        return false;
+
     unsigned newFlags = currentFlags | HashConstLock;
 
     if (!WTF::weakCompareAndSwap(&m_flags, currentFlags, newFlags))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to