diff options
Diffstat (limited to 'deps/v8/src/heap/conservative-stack-visitor.h')
-rw-r--r-- | deps/v8/src/heap/conservative-stack-visitor.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/deps/v8/src/heap/conservative-stack-visitor.h b/deps/v8/src/heap/conservative-stack-visitor.h index e63ba5b673..432af420c1 100644 --- a/deps/v8/src/heap/conservative-stack-visitor.h +++ b/deps/v8/src/heap/conservative-stack-visitor.h @@ -6,11 +6,13 @@ #define V8_HEAP_CONSERVATIVE_STACK_VISITOR_H_ #include "include/v8-internal.h" +#include "src/common/globals.h" #include "src/heap/base/stack.h" namespace v8 { namespace internal { +class MemoryAllocator; class RootVisitor; class V8_EXPORT_PRIVATE ConservativeStackVisitor @@ -20,11 +22,25 @@ class V8_EXPORT_PRIVATE ConservativeStackVisitor void VisitPointer(const void* pointer) final; + // This method finds an object header based on a `maybe_inner_ptr`. It returns + // `kNullAddress` if the parameter does not point to (the interior of) a valid + // heap object, or if it points to (the interior of) some object that is + // already marked as live (black or grey). + // The GarbageCollector parameter is only used to determine which kind of + // heap objects we are interested in. For MARK_COMPACTOR all heap objects are + // considered, whereas for young generation collectors we only consider + // objects in the young generation. + static Address FindBasePtrForMarking(Address maybe_inner_ptr, + MemoryAllocator* allocator, + GarbageCollector collector); + private: void VisitConservativelyIfPointer(Address address); - Isolate* isolate_ = nullptr; - RootVisitor* delegate_ = nullptr; + const PtrComprCageBase cage_base_; + RootVisitor* const delegate_; + MemoryAllocator* const allocator_; + const GarbageCollector collector_; }; } // namespace internal |