Title: [164447] trunk/Source/_javascript_Core
- Revision
- 164447
- Author
- mhahnenb...@apple.com
- Date
- 2014-02-20 14:53:21 -0800 (Thu, 20 Feb 2014)
Log Message
Add a JSC option to disable EdenCollections
https://bugs.webkit.org/show_bug.cgi?id=128849
Reviewed by Mark Lam.
This will help quickly identify whether or not GenGC is responsible for a
particular crash by prematurely collecting a live object.
* heap/Heap.cpp:
(JSC::Heap::collect):
(JSC::Heap::shouldDoFullCollection):
* heap/Heap.h:
* runtime/Options.h:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (164446 => 164447)
--- trunk/Source/_javascript_Core/ChangeLog 2014-02-20 22:09:12 UTC (rev 164446)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-02-20 22:53:21 UTC (rev 164447)
@@ -1,3 +1,19 @@
+2014-02-20 Mark Hahnenberg <mhahnenb...@apple.com>
+
+ Add a JSC option to disable EdenCollections
+ https://bugs.webkit.org/show_bug.cgi?id=128849
+
+ Reviewed by Mark Lam.
+
+ This will help quickly identify whether or not GenGC is responsible for a
+ particular crash by prematurely collecting a live object.
+
+ * heap/Heap.cpp:
+ (JSC::Heap::collect):
+ (JSC::Heap::shouldDoFullCollection):
+ * heap/Heap.h:
+ * runtime/Options.h:
+
2014-02-20 Michael Saboff <msab...@apple.com>
REGRESSION (r164417): ASSERTION FAILED: isBranch() in X86 32 bit build
Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (164446 => 164447)
--- trunk/Source/_javascript_Core/heap/Heap.cpp 2014-02-20 22:09:12 UTC (rev 164446)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp 2014-02-20 22:53:21 UTC (rev 164447)
@@ -832,24 +832,16 @@
}
#endif
- bool isFullCollection = m_shouldDoFullCollection;
- if (isFullCollection) {
+ if (shouldDoFullCollection()) {
m_operationInProgress = FullCollection;
m_slotVisitor.clearMarkStack();
m_shouldDoFullCollection = false;
if (Options::logGC())
dataLog("FullCollection, ");
} else {
-#if ENABLE(GGC)
m_operationInProgress = EdenCollection;
if (Options::logGC())
dataLog("EdenCollection, ");
-#else
- m_operationInProgress = FullCollection;
- m_slotVisitor.clearMarkStack();
- if (Options::logGC())
- dataLog("FullCollection, ");
-#endif
}
if (m_operationInProgress == FullCollection)
m_extraMemoryUsage = 0;
@@ -1136,4 +1128,13 @@
#endif
}
+bool Heap::shouldDoFullCollection() const
+{
+#if ENABLE(GGC)
+ return Options::alwaysDoFullCollection() || m_shouldDoFullCollection;
+#else
+ return true;
+#endif
+}
+
} // namespace JSC
Modified: trunk/Source/_javascript_Core/heap/Heap.h (164446 => 164447)
--- trunk/Source/_javascript_Core/heap/Heap.h 2014-02-20 22:09:12 UTC (rev 164446)
+++ trunk/Source/_javascript_Core/heap/Heap.h 2014-02-20 22:53:21 UTC (rev 164447)
@@ -255,6 +255,7 @@
void zombifyDeadObjects();
void markDeadObjects();
+ bool shouldDoFullCollection() const;
size_t sizeAfterCollect();
JSStack& stack();
Modified: trunk/Source/_javascript_Core/runtime/Options.h (164446 => 164447)
--- trunk/Source/_javascript_Core/runtime/Options.h 2014-02-20 22:09:12 UTC (rev 164446)
+++ trunk/Source/_javascript_Core/runtime/Options.h 2014-02-20 22:53:21 UTC (rev 164447)
@@ -135,6 +135,7 @@
v(bool, alwaysComputeHash, false) \
v(bool, testTheFTL, false) \
v(bool, verboseSanitizeStack, false) \
+ v(bool, alwaysDoFullCollection, false) \
\
v(bool, enableOSREntryToDFG, true) \
v(bool, enableOSREntryToFTL, true) \
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes