Index: Source/heap/Heap.cpp |
diff --git a/Source/heap/Heap.cpp b/Source/heap/Heap.cpp |
index a6d08aedd2e7b1960b52168aa338ee0a0248c243..3386e782a8c15a9c9b595e1b7f36e5acc6bdf71a 100644 |
--- a/Source/heap/Heap.cpp |
+++ b/Source/heap/Heap.cpp |
@@ -1301,6 +1301,17 @@ void Heap::collectGarbage(ThreadState::StackState stackState, GCType gcType) |
s_markingStack->assertIsEmpty(); |
} |
+void Heap::collectAllGarbage(ThreadState::StackState stackState, GCType gcType) |
+{ |
+ // FIXME: oilpan: we should perform a single GC and everything |
+ // should die. Unfortunately it is not the case for all objects |
+ // because the hierarchy was not completely moved to the heap and |
+ // some heap allocated objects own objects that contain persistents |
+ // pointing to other heap allocated objects. |
+ for (int i = 0; i < 5; i++) |
+ collectGarbage(stackState, gcType); |
+} |
+ |
void Heap::getStats(HeapStats* stats) |
{ |
stats->clear(); |