diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-11 13:45:28 +0200 |
commit | d6a599dbc9d824a462b2b206316e102bf8136446 (patch) | |
tree | ecb257a5e55b2239d74b90fdad62fccd661cf286 /Source/JavaScriptCore/heap/MarkStack.h | |
parent | 3ccc3a85f09a83557b391aae380d3bf5f81a2911 (diff) | |
download | qtwebkit-d6a599dbc9d824a462b2b206316e102bf8136446.tar.gz |
Imported WebKit commit 8ff1f22783a32de82fee915abd55bd1b298f2644 (http://svn.webkit.org/repository/webkit/trunk@122325)
New snapshot that should work with the latest Qt build system changes
Diffstat (limited to 'Source/JavaScriptCore/heap/MarkStack.h')
-rw-r--r-- | Source/JavaScriptCore/heap/MarkStack.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/heap/MarkStack.h b/Source/JavaScriptCore/heap/MarkStack.h index c3065e7d6..ff25531a4 100644 --- a/Source/JavaScriptCore/heap/MarkStack.h +++ b/Source/JavaScriptCore/heap/MarkStack.h @@ -219,6 +219,8 @@ namespace JSC { MarkStackSegmentAllocator m_segmentAllocator; + bool m_shouldHashConst; + Vector<ThreadIdentifier> m_markingThreads; Vector<MarkStack*> m_markingThreadsMarkStack; @@ -259,6 +261,7 @@ namespace JSC { MarkStackThreadSharedData& sharedData() { return m_shared; } bool isEmpty() { return m_stack.isEmpty(); } + void setup(); void reset(); size_t visitCount() const { return m_visitCount; } @@ -292,6 +295,7 @@ namespace JSC { void internalAppend(JSCell*); void internalAppend(JSValue); + void internalAppend(JSValue*); JS_EXPORT_PRIVATE void mergeOpaqueRoots(); @@ -304,7 +308,7 @@ namespace JSC { void mergeOpaqueRootsIfProfitable() { - if (static_cast<unsigned>(m_opaqueRoots.size()) < Options::opaqueRootMergeThreshold) + if (static_cast<unsigned>(m_opaqueRoots.size()) < Options::opaqueRootMergeThreshold()) return; mergeOpaqueRoots(); } @@ -325,6 +329,10 @@ namespace JSC { MarkStackThreadSharedData& m_shared; + bool m_shouldHashConst; // Local per-thread copy of shared flag for performance reasons + typedef HashMap<StringImpl*, JSValue> UniqueStringMap; + UniqueStringMap m_uniqueStrings; + #if ENABLE(OBJECT_MARK_LOGGING) unsigned m_logChildCount; #endif @@ -339,6 +347,7 @@ namespace JSC { , m_visitCount(0) , m_isInParallelMode(false) , m_shared(shared) + , m_shouldHashConst(false) { } @@ -350,7 +359,7 @@ namespace JSC { inline void MarkStack::addOpaqueRoot(void* root) { #if ENABLE(PARALLEL_GC) - if (Options::numberOfGCMarkers == 1) { + if (Options::numberOfGCMarkers() == 1) { // Put directly into the shared HashSet. m_shared.m_opaqueRoots.add(root); return; |