Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Unified Diff: src/heap/heap.h

Issue 1987363002: Revert of [heap] Do not invoke GC to make heap iterable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/debug/debug.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.h
diff --git a/src/heap/heap.h b/src/heap/heap.h
index 51e4ba1cd5ab84f2fe21d7a424eace49d6ab2f1c..fd788cdbe991c413d00e7ee2ce74ca9b4a7a2371 100644
--- a/src/heap/heap.h
+++ b/src/heap/heap.h
@@ -539,6 +539,9 @@
static const int kAbortIncrementalMarkingMask = 2;
static const int kFinalizeIncrementalMarkingMask = 4;
+ // Making the heap iterable requires us to abort incremental marking.
+ static const int kMakeHeapIterableMask = kAbortIncrementalMarkingMask;
+
// The roots that have an index less than this are always in old space.
static const int kOldSpaceRoots = 0x20;
@@ -658,6 +661,9 @@
// Converts the given boolean condition to JavaScript boolean value.
inline Oddball* ToBoolean(bool condition);
+
+ // Check whether the heap is currently iterable.
+ bool IsHeapIterable();
// Notify the heap that a context has been disposed.
int NotifyContextDisposed(bool dependant_context);
@@ -1024,7 +1030,9 @@
AllocationSpace space, const char* gc_reason = NULL,
const GCCallbackFlags gc_callback_flags = kNoGCCallbackFlags);
- // Performs a full garbage collection.
+ // Performs a full garbage collection. If (flags & kMakeHeapIterableMask) is
+ // non-zero, then the slower precise sweeper is used, which leaves the heap
+ // in a state where we can iterate over the heap visiting all objects.
void CollectAllGarbage(
int flags = kFinalizeIncrementalMarkingMask, const char* gc_reason = NULL,
const GCCallbackFlags gc_callback_flags = kNoGCCallbackFlags);
@@ -1526,7 +1534,7 @@
void EnsureFillerObjectAtTop();
// Ensure that we have swept all spaces in such a way that we can iterate
- // over all objects.
+ // over all objects. May cause a GC.
void MakeHeapIterable();
// Performs garbage collection operation.
« no previous file with comments | « src/debug/debug.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698