V8 Project
v8::internal::NativeObjectsExplorer Class Reference

#include <heap-snapshot-generator.h>

+ Collaboration diagram for v8::internal::NativeObjectsExplorer:

Public Member Functions

 NativeObjectsExplorer (HeapSnapshot *snapshot, SnapshottingProgressReportingInterface *progress)
 
virtual ~NativeObjectsExplorer ()
 
void AddRootEntries (SnapshotFiller *filler)
 
int EstimateObjectsCount ()
 
bool IterateAndExtractReferences (SnapshotFiller *filler)
 

Private Member Functions

void FillRetainedObjects ()
 
void FillImplicitReferences ()
 
List< HeapObject * > * GetListMaybeDisposeInfo (v8::RetainedObjectInfo *info)
 
void SetNativeRootReference (v8::RetainedObjectInfo *info)
 
void SetRootNativeRootsReference ()
 
void SetWrapperNativeReferences (HeapObject *wrapper, v8::RetainedObjectInfo *info)
 
void VisitSubtreeWrapper (Object **p, uint16_t class_id)
 
 INLINE (static bool StringsMatch(void *key1, void *key2))
 
NativeGroupRetainedObjectInfoFindOrAddGroupInfo (const char *label)
 
 DISALLOW_COPY_AND_ASSIGN (NativeObjectsExplorer)
 

Static Private Member Functions

static uint32_t InfoHash (v8::RetainedObjectInfo *info)
 
static bool RetainedInfosMatch (void *key1, void *key2)
 

Private Attributes

Isolateisolate_
 
HeapSnapshotsnapshot_
 
StringsStoragenames_
 
SnapshottingProgressReportingInterfaceprogress_
 
bool embedder_queried_
 
HeapObjectsSet in_groups_
 
HashMap objects_by_info_
 
HashMap native_groups_
 
HeapEntriesAllocatorsynthetic_entries_allocator_
 
HeapEntriesAllocatornative_entries_allocator_
 
SnapshotFillerfiller_
 

Static Private Attributes

static HeapThing const kNativesRootObject
 

Friends

class GlobalHandlesExtractor
 

Detailed Description

Definition at line 471 of file heap-snapshot-generator.h.

Constructor & Destructor Documentation

◆ NativeObjectsExplorer()

v8::internal::NativeObjectsExplorer::NativeObjectsExplorer ( HeapSnapshot snapshot,
SnapshottingProgressReportingInterface progress 
)

Definition at line 2294 of file heap-snapshot-generator.cc.

2297  : isolate_(snapshot->profiler()->heap_object_map()->heap()->isolate()),
2299  names_(snapshot_->profiler()->names()),
2300  progress_(progress),
2301  embedder_queried_(false),
2303  native_groups_(StringsMatch),
2304  filler_(NULL) {
2306  new BasicHeapEntriesAllocator(snapshot, HeapEntry::kSynthetic);
2308  new BasicHeapEntriesAllocator(snapshot, HeapEntry::kNative);
2309 }
StringsStorage * names() const
Definition: heap-profiler.h:39
HeapEntriesAllocator * synthetic_entries_allocator_
static bool RetainedInfosMatch(void *key1, void *key2)
SnapshottingProgressReportingInterface * progress_
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi the new space consists of two semi spaces print one trace line following each garbage collection do not print trace line after scavenger collection print cumulative GC statistics in only print modified registers Trace simulator debug messages Implied by trace sim abort randomize hashes to avoid predictable hash Fixed seed to use to hash property Print the time it takes to deserialize the snapshot A filename with extra code to be included in the snapshot(mksnapshot only)") DEFINE_STRING(raw_file
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

References native_entries_allocator_, snapshot(), and synthetic_entries_allocator_.

+ Here is the call graph for this function:

◆ ~NativeObjectsExplorer()

v8::internal::NativeObjectsExplorer::~NativeObjectsExplorer ( )
virtual

Definition at line 2312 of file heap-snapshot-generator.cc.

2312  {
2313  for (HashMap::Entry* p = objects_by_info_.Start();
2314  p != NULL;
2315  p = objects_by_info_.Next(p)) {
2316  v8::RetainedObjectInfo* info =
2317  reinterpret_cast<v8::RetainedObjectInfo*>(p->key);
2318  info->Dispose();
2319  List<HeapObject*>* objects =
2320  reinterpret_cast<List<HeapObject*>* >(p->value);
2321  delete objects;
2322  }
2323  for (HashMap::Entry* p = native_groups_.Start();
2324  p != NULL;
2325  p = native_groups_.Next(p)) {
2326  v8::RetainedObjectInfo* info =
2327  reinterpret_cast<v8::RetainedObjectInfo*>(p->value);
2328  info->Dispose();
2329  }
2332 }
Interface for providing information about embedder's objects held by global handles.
Definition: v8-profiler.h:545
virtual void Dispose()=0
Called by V8 when it no longer needs an instance.
Entry * Next(Entry *p) const
Definition: hashmap.h:226

References v8::RetainedObjectInfo::Dispose(), native_entries_allocator_, native_groups_, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Next(), NULL, objects_by_info_, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Start(), and synthetic_entries_allocator_.

+ Here is the call graph for this function:

Member Function Documentation

◆ AddRootEntries()

void v8::internal::NativeObjectsExplorer::AddRootEntries ( SnapshotFiller filler)

◆ DISALLOW_COPY_AND_ASSIGN()

v8::internal::NativeObjectsExplorer::DISALLOW_COPY_AND_ASSIGN ( NativeObjectsExplorer  )
private

◆ EstimateObjectsCount()

int v8::internal::NativeObjectsExplorer::EstimateObjectsCount ( )

Definition at line 2335 of file heap-snapshot-generator.cc.

2335  {
2337  return objects_by_info_.occupancy();
2338 }
uint32_t occupancy() const
Definition: hashmap.h:61

References FillRetainedObjects(), objects_by_info_, and v8::internal::TemplateHashMapImpl< AllocationPolicy >::occupancy().

Referenced by IterateAndExtractReferences(), and v8::internal::HeapSnapshotGenerator::SetProgressTotal().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillImplicitReferences()

void v8::internal::NativeObjectsExplorer::FillImplicitReferences ( )
private

Definition at line 2369 of file heap-snapshot-generator.cc.

2369  {
2370  Isolate* isolate = isolate_;
2371  List<ImplicitRefGroup*>* groups =
2372  isolate->global_handles()->implicit_ref_groups();
2373  for (int i = 0; i < groups->length(); ++i) {
2374  ImplicitRefGroup* group = groups->at(i);
2375  HeapObject* parent = *group->parent;
2376  int parent_entry =
2378  DCHECK(parent_entry != HeapEntry::kNoEntry);
2379  Object*** children = group->children;
2380  for (size_t j = 0; j < group->length; ++j) {
2381  Object* child = *children[j];
2382  HeapEntry* child_entry =
2386  parent_entry,
2387  "native",
2388  child_entry);
2389  }
2390  }
2391  isolate->global_handles()->RemoveImplicitRefGroups();
2392 }
List< ImplicitRefGroup * > * implicit_ref_groups()
GlobalHandles * global_handles()
Definition: isolate.h:917
HeapEntry * FindOrAddEntry(HeapThing ptr, HeapEntriesAllocator *allocator)
void SetNamedReference(HeapGraphEdge::Type type, int parent, const char *reference_name, HeapEntry *child_entry)
#define DCHECK(condition)
Definition: logging.h:205
kSerializedDataOffset Object
Definition: objects-inl.h:5322

References v8::internal::List< T, AllocationPolicy >::at(), v8::internal::ImplicitRefGroup::children, DCHECK, filler_, v8::internal::SnapshotFiller::FindOrAddEntry(), v8::internal::Isolate::global_handles(), v8::internal::GlobalHandles::implicit_ref_groups(), isolate_, v8::HeapGraphEdge::kInternal, v8::internal::ImplicitRefGroup::length, native_entries_allocator_, v8::internal::ImplicitRefGroup::parent, v8::internal::GlobalHandles::RemoveImplicitRefGroups(), and v8::internal::SnapshotFiller::SetNamedReference().

Referenced by IterateAndExtractReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillRetainedObjects()

void v8::internal::NativeObjectsExplorer::FillRetainedObjects ( )
private

Definition at line 2341 of file heap-snapshot-generator.cc.

2341  {
2342  if (embedder_queried_) return;
2343  Isolate* isolate = isolate_;
2344  const GCType major_gc_type = kGCTypeMarkSweepCompact;
2345  // Record objects that are joined into ObjectGroups.
2346  isolate->heap()->CallGCPrologueCallbacks(
2348  List<ObjectGroup*>* groups = isolate->global_handles()->object_groups();
2349  for (int i = 0; i < groups->length(); ++i) {
2350  ObjectGroup* group = groups->at(i);
2351  if (group->info == NULL) continue;
2352  List<HeapObject*>* list = GetListMaybeDisposeInfo(group->info);
2353  for (size_t j = 0; j < group->length; ++j) {
2354  HeapObject* obj = HeapObject::cast(*group->objects[j]);
2355  list->Add(obj);
2356  in_groups_.Insert(obj);
2357  }
2358  group->info = NULL; // Acquire info object ownership.
2359  }
2360  isolate->global_handles()->RemoveObjectGroups();
2361  isolate->heap()->CallGCEpilogueCallbacks(major_gc_type, kNoGCCallbackFlags);
2362  // Record objects that are not in ObjectGroups, but have class ID.
2363  GlobalHandlesExtractor extractor(this);
2364  isolate->global_handles()->IterateAllRootsWithClassIds(&extractor);
2365  embedder_queried_ = true;
2366 }
List< HeapObject * > * GetListMaybeDisposeInfo(v8::RetainedObjectInfo *info)
@ kGCCallbackFlagConstructRetainedObjectInfos
Definition: v8.h:4212
@ kNoGCCallbackFlags
Definition: v8.h:4210
GCType
Applications can register callback functions which will be called before and after a garbage collecti...
Definition: v8.h:4203
@ kGCTypeMarkSweepCompact
Definition: v8.h:4205

References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::List< T, AllocationPolicy >::at(), v8::internal::Heap::CallGCEpilogueCallbacks(), v8::internal::Heap::CallGCPrologueCallbacks(), embedder_queried_, GetListMaybeDisposeInfo(), v8::internal::Isolate::global_handles(), v8::internal::Isolate::heap(), in_groups_, v8::internal::ObjectGroup::info, v8::internal::HeapObjectsSet::Insert(), isolate_, v8::internal::GlobalHandles::IterateAllRootsWithClassIds(), v8::kGCCallbackFlagConstructRetainedObjectInfos, v8::kGCTypeMarkSweepCompact, v8::kNoGCCallbackFlags, v8::internal::ObjectGroup::length, NULL, v8::internal::GlobalHandles::object_groups(), v8::internal::ObjectGroup::objects, and v8::internal::GlobalHandles::RemoveObjectGroups().

Referenced by EstimateObjectsCount(), and IterateAndExtractReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FindOrAddGroupInfo()

NativeGroupRetainedObjectInfo * v8::internal::NativeObjectsExplorer::FindOrAddGroupInfo ( const char *  label)
private

Definition at line 2459 of file heap-snapshot-generator.cc.

2460  {
2461  const char* label_copy = names_->GetCopy(label);
2463  label_copy,
2464  static_cast<int>(strlen(label_copy)),
2465  isolate_->heap()->HashSeed());
2466  HashMap::Entry* entry = native_groups_.Lookup(const_cast<char*>(label_copy),
2467  hash, true);
2468  if (entry->value == NULL) {
2469  entry->value = new NativeGroupRetainedObjectInfo(label);
2470  }
2471  return static_cast<NativeGroupRetainedObjectInfo*>(entry->value);
2472 }
uint32_t HashSeed()
Definition: heap.h:1237
static uint32_t HashSequentialString(const schar *chars, int length, uint32_t seed)
Definition: objects-inl.h:6563
const char * GetCopy(const char *src)
Entry * Lookup(void *key, uint32_t hash, bool insert, AllocationPolicy allocator=AllocationPolicy())
Definition: hashmap.h:114

References v8::internal::StringsStorage::GetCopy(), v8::internal::Heap::HashSeed(), v8::internal::StringHasher::HashSequentialString(), v8::internal::Isolate::heap(), isolate_, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Lookup(), names_, native_groups_, and NULL.

Referenced by SetNativeRootReference().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetListMaybeDisposeInfo()

List< HeapObject * > * v8::internal::NativeObjectsExplorer::GetListMaybeDisposeInfo ( v8::RetainedObjectInfo info)
private

Definition at line 2394 of file heap-snapshot-generator.cc.

2395  {
2396  HashMap::Entry* entry =
2397  objects_by_info_.Lookup(info, InfoHash(info), true);
2398  if (entry->value != NULL) {
2399  info->Dispose();
2400  } else {
2401  entry->value = new List<HeapObject*>(4);
2402  }
2403  return reinterpret_cast<List<HeapObject*>* >(entry->value);
2404 }
static uint32_t InfoHash(v8::RetainedObjectInfo *info)

References v8::RetainedObjectInfo::Dispose(), InfoHash(), v8::internal::TemplateHashMapImpl< AllocationPolicy >::Lookup(), NULL, and objects_by_info_.

Referenced by FillRetainedObjects(), and VisitSubtreeWrapper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InfoHash()

static uint32_t v8::internal::NativeObjectsExplorer::InfoHash ( v8::RetainedObjectInfo info)
inlinestaticprivate

Definition at line 490 of file heap-snapshot-generator.h.

490  {
491  return ComputeIntegerHash(static_cast<uint32_t>(info->GetHash()),
493  }
virtual intptr_t GetHash()=0
Returns hash value for the instance.
static const uint32_t kZeroHashSeed
Definition: utils.h:245
uint32_t ComputeIntegerHash(uint32_t key, uint32_t seed)
Definition: utils.h:249

References v8::internal::ComputeIntegerHash(), v8::RetainedObjectInfo::GetHash(), and v8::internal::kZeroHashSeed.

Referenced by GetListMaybeDisposeInfo().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ INLINE()

v8::internal::NativeObjectsExplorer::INLINE ( static bool   StringsMatchvoid *key1, void *key2)
inlineprivate

Definition at line 499 of file heap-snapshot-generator.h.

499  {
500  return strcmp(reinterpret_cast<char*>(key1),
501  reinterpret_cast<char*>(key2)) == 0;
502  }

◆ IterateAndExtractReferences()

bool v8::internal::NativeObjectsExplorer::IterateAndExtractReferences ( SnapshotFiller filler)

Definition at line 2407 of file heap-snapshot-generator.cc.

2408  {
2409  filler_ = filler;
2412  if (EstimateObjectsCount() > 0) {
2413  for (HashMap::Entry* p = objects_by_info_.Start();
2414  p != NULL;
2415  p = objects_by_info_.Next(p)) {
2416  v8::RetainedObjectInfo* info =
2417  reinterpret_cast<v8::RetainedObjectInfo*>(p->key);
2418  SetNativeRootReference(info);
2419  List<HeapObject*>* objects =
2420  reinterpret_cast<List<HeapObject*>* >(p->value);
2421  for (int i = 0; i < objects->length(); ++i) {
2422  SetWrapperNativeReferences(objects->at(i), info);
2423  }
2424  }
2426  }
2427  filler_ = NULL;
2428  return true;
2429 }
void SetNativeRootReference(v8::RetainedObjectInfo *info)
void SetWrapperNativeReferences(HeapObject *wrapper, v8::RetainedObjectInfo *info)

References v8::internal::List< T, AllocationPolicy >::at(), EstimateObjectsCount(), filler_, FillImplicitReferences(), FillRetainedObjects(), v8::internal::TemplateHashMapImpl< AllocationPolicy >::Next(), NULL, objects_by_info_, SetNativeRootReference(), SetRootNativeRootsReference(), SetWrapperNativeReferences(), and v8::internal::TemplateHashMapImpl< AllocationPolicy >::Start().

Referenced by v8::internal::HeapSnapshotGenerator::FillReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RetainedInfosMatch()

static bool v8::internal::NativeObjectsExplorer::RetainedInfosMatch ( void *  key1,
void *  key2 
)
inlinestaticprivate

Definition at line 494 of file heap-snapshot-generator.h.

494  {
495  return key1 == key2 ||
496  (reinterpret_cast<v8::RetainedObjectInfo*>(key1))->IsEquivalent(
497  reinterpret_cast<v8::RetainedObjectInfo*>(key2));
498  }

◆ SetNativeRootReference()

void v8::internal::NativeObjectsExplorer::SetNativeRootReference ( v8::RetainedObjectInfo info)
private

Definition at line 2475 of file heap-snapshot-generator.cc.

2476  {
2477  HeapEntry* child_entry =
2479  DCHECK(child_entry != NULL);
2480  NativeGroupRetainedObjectInfo* group_info =
2482  HeapEntry* group_entry =
2486  group_entry->index(),
2487  child_entry);
2488 }
virtual const char * GetGroupLabel()
Returns human-readable group label.
Definition: v8-profiler.h:574
NativeGroupRetainedObjectInfo * FindOrAddGroupInfo(const char *label)
void SetNamedAutoIndexReference(HeapGraphEdge::Type type, int parent, HeapEntry *child_entry)

References DCHECK, filler_, v8::internal::SnapshotFiller::FindOrAddEntry(), FindOrAddGroupInfo(), v8::RetainedObjectInfo::GetGroupLabel(), v8::HeapGraphEdge::kInternal, native_entries_allocator_, NULL, v8::internal::SnapshotFiller::SetNamedAutoIndexReference(), and synthetic_entries_allocator_.

Referenced by IterateAndExtractReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetRootNativeRootsReference()

void v8::internal::NativeObjectsExplorer::SetRootNativeRootsReference ( )
private

Definition at line 2508 of file heap-snapshot-generator.cc.

2508  {
2509  for (HashMap::Entry* entry = native_groups_.Start();
2510  entry;
2511  entry = native_groups_.Next(entry)) {
2512  NativeGroupRetainedObjectInfo* group_info =
2513  static_cast<NativeGroupRetainedObjectInfo*>(entry->value);
2514  HeapEntry* group_entry =
2516  DCHECK(group_entry != NULL);
2519  snapshot_->root()->index(),
2520  group_entry);
2521  }
2522 }
void SetIndexedAutoIndexReference(HeapGraphEdge::Type type, int parent, HeapEntry *child_entry)

References DCHECK, filler_, v8::internal::SnapshotFiller::FindOrAddEntry(), v8::HeapGraphEdge::kElement, native_entries_allocator_, native_groups_, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Next(), NULL, v8::internal::HeapSnapshot::root(), v8::internal::SnapshotFiller::SetIndexedAutoIndexReference(), snapshot_, and v8::internal::TemplateHashMapImpl< AllocationPolicy >::Start().

Referenced by IterateAndExtractReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetWrapperNativeReferences()

void v8::internal::NativeObjectsExplorer::SetWrapperNativeReferences ( HeapObject wrapper,
v8::RetainedObjectInfo info 
)
private

Definition at line 2491 of file heap-snapshot-generator.cc.

2492  {
2493  HeapEntry* wrapper_entry = filler_->FindEntry(wrapper);
2494  DCHECK(wrapper_entry != NULL);
2495  HeapEntry* info_entry =
2497  DCHECK(info_entry != NULL);
2499  wrapper_entry->index(),
2500  "native",
2501  info_entry);
2503  info_entry->index(),
2504  wrapper_entry);
2505 }
HeapEntry * FindEntry(HeapThing ptr)

References DCHECK, filler_, v8::internal::SnapshotFiller::FindEntry(), v8::internal::SnapshotFiller::FindOrAddEntry(), v8::HeapGraphEdge::kElement, v8::HeapGraphEdge::kInternal, native_entries_allocator_, NULL, v8::internal::SnapshotFiller::SetIndexedAutoIndexReference(), and v8::internal::SnapshotFiller::SetNamedReference().

Referenced by IterateAndExtractReferences().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VisitSubtreeWrapper()

void v8::internal::NativeObjectsExplorer::VisitSubtreeWrapper ( Object **  p,
uint16_t  class_id 
)
private

Definition at line 2525 of file heap-snapshot-generator.cc.

2525  {
2526  if (in_groups_.Contains(*p)) return;
2527  Isolate* isolate = isolate_;
2528  v8::RetainedObjectInfo* info =
2529  isolate->heap_profiler()->ExecuteWrapperClassCallback(class_id, p);
2530  if (info == NULL) return;
2531  GetListMaybeDisposeInfo(info)->Add(HeapObject::cast(*p));
2532 }

References v8::internal::HeapObjectsSet::Contains(), v8::internal::HeapProfiler::ExecuteWrapperClassCallback(), GetListMaybeDisposeInfo(), v8::internal::Isolate::heap_profiler(), in_groups_, isolate_, and NULL.

Referenced by v8::internal::GlobalHandlesExtractor::VisitEmbedderReference().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ GlobalHandlesExtractor

friend class GlobalHandlesExtractor
friend

Definition at line 522 of file heap-snapshot-generator.h.

Member Data Documentation

◆ embedder_queried_

bool v8::internal::NativeObjectsExplorer::embedder_queried_
private

Definition at line 510 of file heap-snapshot-generator.h.

Referenced by FillRetainedObjects().

◆ filler_

◆ in_groups_

HeapObjectsSet v8::internal::NativeObjectsExplorer::in_groups_
private

Definition at line 511 of file heap-snapshot-generator.h.

Referenced by FillRetainedObjects(), and VisitSubtreeWrapper().

◆ isolate_

Isolate* v8::internal::NativeObjectsExplorer::isolate_
private

◆ kNativesRootObject

HeapThing const v8::internal::NativeObjectsExplorer::kNativesRootObject
staticprivate

Definition at line 520 of file heap-snapshot-generator.h.

◆ names_

StringsStorage* v8::internal::NativeObjectsExplorer::names_
private

Definition at line 508 of file heap-snapshot-generator.h.

Referenced by FindOrAddGroupInfo().

◆ native_entries_allocator_

HeapEntriesAllocator* v8::internal::NativeObjectsExplorer::native_entries_allocator_
private

◆ native_groups_

HashMap v8::internal::NativeObjectsExplorer::native_groups_
private

◆ objects_by_info_

HashMap v8::internal::NativeObjectsExplorer::objects_by_info_
private

◆ progress_

SnapshottingProgressReportingInterface* v8::internal::NativeObjectsExplorer::progress_
private

Definition at line 509 of file heap-snapshot-generator.h.

◆ snapshot_

HeapSnapshot* v8::internal::NativeObjectsExplorer::snapshot_
private

Definition at line 507 of file heap-snapshot-generator.h.

Referenced by SetRootNativeRootsReference().

◆ synthetic_entries_allocator_

HeapEntriesAllocator* v8::internal::NativeObjectsExplorer::synthetic_entries_allocator_
private

The documentation for this class was generated from the following files: