2011-01-21 Geoffrey Garen <ggaren@apple.com>
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Jan 2011 23:24:07 +0000 (23:24 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 21 Jan 2011 23:24:07 +0000 (23:24 +0000)
        Reviewed by Sam Weinig.

        Moved the mark stack from global data to the heap, since it pertains
        to the heap, and not the virtual machine as a whole.
        https://bugs.webkit.org/show_bug.cgi?id=52930

        SunSpider reports no change.

        * runtime/Heap.cpp:
        (JSC::Heap::Heap):
        (JSC::Heap::markRoots):
        * runtime/Heap.h:
        * runtime/JSGlobalData.cpp:
        (JSC::JSGlobalData::JSGlobalData):
        * runtime/JSGlobalData.h:

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/Heap.cpp
Source/JavaScriptCore/runtime/Heap.h
Source/JavaScriptCore/runtime/JSGlobalData.cpp
Source/JavaScriptCore/runtime/JSGlobalData.h

index 943f71986c9813f57a14ae585ace3814a4575cdd..54448c629bea983e1de0868082b74d76fa46a519 100644 (file)
@@ -1,3 +1,21 @@
+2011-01-21  Geoffrey Garen  <ggaren@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Moved the mark stack from global data to the heap, since it pertains
+        to the heap, and not the virtual machine as a whole.
+        https://bugs.webkit.org/show_bug.cgi?id=52930
+        
+        SunSpider reports no change.
+
+        * runtime/Heap.cpp:
+        (JSC::Heap::Heap):
+        (JSC::Heap::markRoots):
+        * runtime/Heap.h:
+        * runtime/JSGlobalData.cpp:
+        (JSC::JSGlobalData::JSGlobalData):
+        * runtime/JSGlobalData.h:
+
 2011-01-21  Peter Gal  <galpeter@inf.u-szeged.hu>
 
         Reviewed by Darin Adler.
index e2cc3299ea30c8371bc1eb7eb7e099179321825b..39663247be17971b63cab20ba2c8a6573b59b72c 100644 (file)
@@ -41,7 +41,8 @@ Heap::Heap(JSGlobalData* globalData)
     , m_markListSet(0)
     , m_activityCallback(DefaultGCActivityCallback::create(this))
     , m_globalData(globalData)
-    , m_machineStackMarker(&globalData->heap)
+    , m_machineStackMarker(this)
+    , m_markStack(globalData->jsArrayVPtr)
     , m_extraCost(0)
 {
     (*m_activityCallback)();
@@ -262,7 +263,7 @@ void Heap::markRoots()
     // Reset mark bits.
     m_markedSpace.clearMarkBits();
 
-    MarkStack& markStack = m_globalData->markStack;
+    MarkStack& markStack = m_markStack;
     conservativeSet.mark(markStack);
     markStack.drain();
 
index f1eba2b20d0356caaa53d30909e186c4baf0d23e..f7f4deb8c24789e1a6cc00e66484e88ff5eebd95 100644 (file)
@@ -22,6 +22,7 @@
 #ifndef Heap_h
 #define Heap_h
 
+#include "MarkStack.h"
 #include "MarkedSpace.h"
 #include <wtf/Forward.h>
 #include <wtf/HashSet.h>
@@ -131,6 +132,7 @@ namespace JSC {
         JSGlobalData* m_globalData;
         
         MachineStackMarker m_machineStackMarker;
+        MarkStack m_markStack;
         
         size_t m_extraCost;
     };
index f20a9a4b726eb70d5701bf066d16fb8585cb815e..3928c829c143ba9776e013345eb615818af96ed3 100644 (file)
@@ -143,7 +143,6 @@ JSGlobalData::JSGlobalData(GlobalDataType globalDataType, ThreadStackType thread
     , head(0)
     , dynamicGlobalObject(0)
     , firstStringifierToMark(0)
-    , markStack(jsArrayVPtr)
     , cachedUTCOffset(NaN)
     , maxReentryDepth(threadStackType == ThreadStackTypeSmall ? MaxSmallThreadReentryDepth : MaxLargeThreadReentryDepth)
     , m_regExpCache(new RegExpCache(this))
index 1c3af2ab6fffc8cbccab3260cd45723f1bb1ec26..31f41e9c425ec18565418fd8e77d19900a71c2a3 100644 (file)
@@ -35,7 +35,6 @@
 #include "ExecutableAllocator.h"
 #include "JITStubs.h"
 #include "JSValue.h"
-#include "MarkStack.h"
 #include "NumericStrings.h"
 #include "SmallStrings.h"
 #include "Terminator.h"
@@ -218,8 +217,6 @@ namespace JSC {
 
         Stringifier* firstStringifierToMark;
 
-        MarkStack markStack;
-
         double cachedUTCOffset;
         DSTOffsetCache dstOffsetCache;