[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
ggaren at apple.com
ggaren at apple.com
Sun Feb 20 23:01:20 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 2029c2adc6e88047bec8fb8d9bce4ce36be33da2
Author: ggaren at apple.com <ggaren at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Jan 15 03:28:16 2011 +0000
Try to fix the GTK bot.
Reviewed by Sam Weinig.
* runtime/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::markRoots): Kids, remember to initialize your data members.
Knowing is half the battle.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index decbc61..67460ce 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
+2011-01-14 Geoffrey Garen <ggaren at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Try to fix the GTK bot.
+
+ * runtime/Heap.cpp:
+ (JSC::Heap::Heap):
+ (JSC::Heap::markRoots): Kids, remember to initialize your data members.
+ Knowing is half the battle.
+
2011-01-14 Oliver Hunt <oliver at apple.com>
Reviewed by Stephanie Lewis.
diff --git a/Source/JavaScriptCore/runtime/Heap.cpp b/Source/JavaScriptCore/runtime/Heap.cpp
index 20e7519..de6928c 100644
--- a/Source/JavaScriptCore/runtime/Heap.cpp
+++ b/Source/JavaScriptCore/runtime/Heap.cpp
@@ -37,6 +37,7 @@ namespace JSC {
Heap::Heap(JSGlobalData* globalData)
: m_markedSpace(globalData)
+ , m_operationInProgress(NoOperation)
, m_markListSet(0)
, m_activityCallback(DefaultGCActivityCallback::create(this))
, m_globalData(globalData)
@@ -259,34 +260,49 @@ void Heap::markRoots()
m_operationInProgress = Collection;
- MarkStack& markStack = m_globalData->markStack;
+ // Gather conservative references. We must do this before resetting mark bits
+ // because we rely on mark bits to tell us whether a candidate reference
+ // is valid.
+ HashSet<JSCell*> machineStackReferences;
+ m_machineStackMarker.markMachineStackConservatively(machineStackReferences);
- // Reset mark bits.
m_markedSpace.clearMarkBits();
- // Mark stack roots.
- m_machineStackMarker.markMachineStackConservatively(markStack);
+ MarkStack& markStack = m_globalData->markStack;
+
+ HashSet<JSCell*>::iterator end = machineStackReferences.end();
+ for (HashSet<JSCell*>::iterator it = machineStackReferences.begin(); it != end; ++it)
+ markStack.append(*it);
+ markStack.drain();
+
+ // FIXME: Do we need extra conservatism here too?
m_globalData->interpreter->registerFile().markCallFrames(markStack, this);
+ markStack.drain();
// Mark explicitly registered roots.
markProtectedObjects(markStack);
-
+ markStack.drain();
+
// Mark temporary vector for Array sorting
markTempSortVectors(markStack);
+ markStack.drain();
// Mark misc. other roots.
if (m_markListSet && m_markListSet->size())
MarkedArgumentBuffer::markLists(markStack, *m_markListSet);
+ markStack.drain();
+
if (m_globalData->exception)
markStack.append(m_globalData->exception);
if (m_globalData->firstStringifierToMark)
JSONObject::markStringifiers(markStack, m_globalData->firstStringifierToMark);
+ markStack.drain();
// Mark the small strings cache last, since it will clear itself if nothing
// else has marked it.
m_globalData->smallStrings.markChildren(markStack);
-
markStack.drain();
+
markStack.compact();
updateWeakGCHandles();
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list