Lines Matching refs:entry

228 void HeapEntry::VerifyReference(HeapGraphEdge::Type type, HeapEntry* entry,
248 reinterpret_cast<Address>(generator->FindHeapThingForHeapEntry(entry));
278 HeapEntry* entry,
282 snapshot_->edges().emplace_back(type, name, this, entry);
283 VerifyReference(type, entry, generator, verification);
287 HeapEntry* entry,
291 snapshot_->edges().emplace_back(type, index, this, entry);
292 VerifyReference(type, entry, generator, verification);
427 DCHECK(entries_.empty()); // Root entry must be the first one.
446 void HeapSnapshot::AddLocation(HeapEntry* entry, int scriptId, int line,
448 locations_.emplace_back(entry->index(), scriptId, line, col);
465 for (HeapEntry& entry : entries()) {
466 children_index = entry.set_children_index(children_index);
479 for (HeapEntry& entry : entries_) {
480 entries_by_id_cache_.emplace(entry.id(), &entry);
505 // an entry with zero value. Otherwise it's impossible to tell if
520 // entry as we know that the object has died.
532 // We found the existing entry with to address for an old object.
535 // one of this entry will be removed with the corresponding entries_map_
536 // entry.
565 base::HashMap::Entry* entry = entries_map_.Lookup(
567 if (entry == nullptr) return v8::HeapProfiler::kUnknownObjectId;
568 int entry_index = static_cast<int>(reinterpret_cast<intptr_t>(entry->value));
579 base::HashMap::Entry* entry = entries_map_.LookupOrInsert(
581 if (entry->value != nullptr) {
583 static_cast<int>(reinterpret_cast<intptr_t>(entry->value));
593 entry->value = reinterpret_cast<void*>(entries_.size());
609 base::HashMap::Entry* entry =
613 {addr, reinterpret_cast<size_t>(entry->value)});
615 result.first->second = reinterpret_cast<size_t>(entry->value);
719 base::HashMap::Entry* entry =
722 DCHECK(entry);
723 entry->value = reinterpret_cast<void*>(first_free_entry);
763 HeapEntry* entry =
767 ExtractNumberReference(entry, smi);
768 return entry;
771 void V8HeapExplorer::ExtractLocation(HeapEntry* entry, HeapObject object) {
774 ExtractLocationForJSFunction(entry, func);
778 ExtractLocationForJSFunction(entry, gen.function());
785 ExtractLocationForJSFunction(entry, maybe_constructor);
790 void V8HeapExplorer::ExtractLocationForJSFunction(HeapEntry* entry,
798 snapshot_->AddLocation(entry, scriptId, info.line, info.column);
1058 void V8HeapExplorer::ExtractReferences(HeapEntry* entry, HeapObject obj) {
1060 ExtractJSGlobalProxyReferences(entry, JSGlobalProxy::cast(obj));
1062 ExtractJSArrayBufferReferences(entry, JSArrayBuffer::cast(obj));
1065 ExtractJSWeakCollectionReferences(entry, JSWeakSet::cast(obj));
1067 ExtractJSWeakCollectionReferences(entry, JSWeakMap::cast(obj));
1069 ExtractJSCollectionReferences(entry, JSSet::cast(obj));
1071 ExtractJSCollectionReferences(entry, JSMap::cast(obj));
1073 ExtractJSPromiseReferences(entry, JSPromise::cast(obj));
1075 ExtractJSGeneratorObjectReferences(entry, JSGeneratorObject::cast(obj));
1077 ExtractJSWeakRefReferences(entry, JSWeakRef::cast(obj));
1079 ExtractJSObjectReferences(entry, JSObject::cast(obj));
1081 ExtractStringReferences(entry, String::cast(obj));
1083 ExtractSymbolReferences(entry, Symbol::cast(obj));
1085 ExtractMapReferences(entry, Map::cast(obj));
1087 ExtractSharedFunctionInfoReferences(entry, SharedFunctionInfo::cast(obj));
1089 ExtractScriptReferences(entry, Script::cast(obj));
1091 ExtractAccessorInfoReferences(entry, AccessorInfo::cast(obj));
1093 ExtractAccessorPairReferences(entry, AccessorPair::cast(obj));
1095 ExtractCodeReferences(entry, Code::cast(obj));
1097 ExtractCellReferences(entry, Cell::cast(obj));
1099 ExtractFeedbackCellReferences(entry, FeedbackCell::cast(obj));
1101 ExtractPropertyCellReferences(entry, PropertyCell::cast(obj));
1103 ExtractAllocationSiteReferences(entry, AllocationSite::cast(obj));
1106 entry, ArrayBoilerplateDescription::cast(obj));
1109 entry, RegExpBoilerplateDescription::cast(obj));
1111 ExtractFeedbackVectorReferences(entry, FeedbackVector::cast(obj));
1113 ExtractDescriptorArrayReferences(entry, DescriptorArray::cast(obj));
1115 ExtractWeakArrayReferences(WeakFixedArray::kHeaderSize, entry,
1118 ExtractWeakArrayReferences(WeakArrayList::kHeaderSize, entry,
1121 ExtractContextReferences(entry, Context::cast(obj));
1123 ExtractEphemeronHashTableReferences(entry, EphemeronHashTable::cast(obj));
1125 ExtractFixedArrayReferences(entry, FixedArray::cast(obj));
1127 ExtractWeakCellReferences(entry, WeakCell::cast(obj));
1130 ExtractNumberReference(entry, obj);
1133 ExtractBytecodeArrayReferences(entry, BytecodeArray::cast(obj));
1135 ExtractScopeInfoReferences(entry, ScopeInfo::cast(obj));
1139 void V8HeapExplorer::ExtractJSGlobalProxyReferences(HeapEntry* entry,
1141 SetInternalReference(entry, "native_context", proxy.native_context(),
1145 void V8HeapExplorer::ExtractJSObjectReferences(HeapEntry* entry,
1148 ExtractPropertyReferences(js_obj, entry);
1149 ExtractElementReferences(js_obj, entry);
1150 ExtractInternalReferences(js_obj, entry);
1154 SetPropertyReference(entry, roots.proto_string(), iter.GetCurrent());
1158 SetInternalReference(entry, "bindings", js_fun.bound_arguments(),
1160 SetInternalReference(entry, "bound_this", js_fun.bound_this(),
1162 SetInternalReference(entry, "bound_function",
1168 SetNativeBindReference(entry, reference_name, bindings.get(i));
1176 SetPropertyReference(entry, roots.prototype_string(), proto_or_map,
1180 SetPropertyReference(entry, roots.prototype_string(),
1182 SetInternalReference(entry, "initial_map", proto_or_map,
1189 SetInternalReference(entry, "feedback_cell", js_fun.raw_feedback_cell(),
1192 SetInternalReference(entry, "shared", shared_info,
1195 SetInternalReference(entry, "context", js_fun.context(),
1197 SetInternalReference(entry, "code", js_fun.code(), JSFunction::kCodeOffset);
1200 SetInternalReference(entry, "native_context", global_obj.native_context(),
1202 SetInternalReference(entry, "global_proxy", global_obj.global_proxy(),
1208 SetInternalReference(entry, "buffer", view.buffer(),
1213 SetInternalReference(entry, "properties", js_obj.raw_properties_or_hash(),
1217 SetInternalReference(entry, "elements", js_obj.elements(),
1221 void V8HeapExplorer::ExtractStringReferences(HeapEntry* entry, String string) {
1224 SetInternalReference(entry, "first", cs.first(), ConsString::kFirstOffset);
1225 SetInternalReference(entry, "second", cs.second(),
1229 SetInternalReference(entry, "parent", ss.parent(),
1233 SetInternalReference(entry, "actual", ts.actual(),
1238 void V8HeapExplorer::ExtractSymbolReferences(HeapEntry* entry, Symbol symbol) {
1239 SetInternalReference(entry, "name", symbol.description(),
1243 void V8HeapExplorer::ExtractJSCollectionReferences(HeapEntry* entry,
1245 SetInternalReference(entry, "table", collection.table(),
1249 void V8HeapExplorer::ExtractJSWeakCollectionReferences(HeapEntry* entry,
1251 SetInternalReference(entry, "table", obj.table(),
1256 HeapEntry* entry, EphemeronHashTable table) {
1263 SetWeakReference(entry, key_index, key, table.OffsetOfElementAt(key_index));
1264 SetWeakReference(entry, value_index, value,
1296 void V8HeapExplorer::ExtractContextReferences(HeapEntry* entry,
1304 SetContextReference(entry, it->name(), context.get(idx),
1311 SetContextReference(entry, name, context.get(idx),
1318 entry, "scope_info", context.get(Context::SCOPE_INFO_INDEX),
1320 SetInternalReference(entry, "previous", context.get(Context::PREVIOUS_INDEX),
1324 entry, "extension", context.get(Context::EXTENSION_INDEX),
1334 SetInternalReference(entry, name, context.get(index),
1338 SetWeakReference(entry, "optimized_code_list",
1342 SetWeakReference(entry, "deoptimized_code_list",
1354 void V8HeapExplorer::ExtractMapReferences(HeapEntry* entry, Map map) {
1360 SetWeakReference(entry, "transition", raw_transitions_or_prototype_info,
1372 SetInternalReference(entry, "transitions", transitions,
1376 SetInternalReference(entry, "transition",
1381 SetInternalReference(entry, "prototype_info",
1388 SetInternalReference(entry, "descriptors", descriptors,
1390 SetInternalReference(entry, "prototype", map.prototype(),
1395 SetInternalReference(entry, "native_context", native_context,
1401 SetInternalReference(entry, "back_pointer", constructor_or_back_pointer,
1405 SetInternalReference(entry, "constructor_function_data",
1409 SetInternalReference(entry, "constructor", constructor_or_back_pointer,
1414 SetInternalReference(entry, "dependent_code", map.dependent_code(),
1419 HeapEntry* entry, SharedFunctionInfo shared) {
1434 SetInternalReference(entry, "name_or_scope_info", name_or_scope_info,
1436 SetInternalReference(entry, "script_or_debug_info",
1439 SetInternalReference(entry, "function_data",
1443 entry, "raw_outer_scope_info_or_feedback_metadata",
1448 void V8HeapExplorer::ExtractScriptReferences(HeapEntry* entry, Script script) {
1449 SetInternalReference(entry, "source", script.source(), Script::kSourceOffset);
1450 SetInternalReference(entry, "name", script.name(), Script::kNameOffset);
1451 SetInternalReference(entry, "context_data", script.context_data(),
1454 SetInternalReference(entry, "line_ends", script.line_ends(),
1462 void V8HeapExplorer::ExtractAccessorInfoReferences(HeapEntry* entry,
1464 SetInternalReference(entry, "name", accessor_info.name(),
1466 SetInternalReference(entry, "expected_receiver_type",
1469 SetInternalReference(entry, "getter", accessor_info.getter(),
1471 SetInternalReference(entry, "setter", accessor_info.setter(),
1473 SetInternalReference(entry, "data", accessor_info.data(),
1477 void V8HeapExplorer::ExtractAccessorPairReferences(HeapEntry* entry,
1479 SetInternalReference(entry, "getter", accessors.getter(),
1481 SetInternalReference(entry, "setter", accessors.setter(),
1485 void V8HeapExplorer::ExtractJSWeakRefReferences(HeapEntry* entry,
1487 SetWeakReference(entry, "target", js_weak_ref.target(),
1491 void V8HeapExplorer::ExtractWeakCellReferences(HeapEntry* entry,
1493 SetWeakReference(entry, "target", weak_cell.target(),
1495 SetWeakReference(entry, "unregister_token", weak_cell.unregister_token(),
1503 void V8HeapExplorer::ExtractCodeReferences(HeapEntry* entry, Code code) {
1505 SetInternalReference(entry, "relocation_info", code.relocation_info(),
1510 SetInternalReference(entry, "interpreter_data",
1515 SetInternalReference(entry, "bytecode_offset_table",
1522 SetInternalReference(entry, "deoptimization_data", deoptimization_data,
1534 SetInternalReference(entry, "source_position_table",
1540 void V8HeapExplorer::ExtractCellReferences(HeapEntry* entry, Cell cell) {
1541 SetInternalReference(entry, "value", cell.value(), Cell::kValueOffset);
1544 void V8HeapExplorer::ExtractFeedbackCellReferences(HeapEntry* entry,
1547 SetInternalReference(entry, "value", feedback_cell.value(),
1551 void V8HeapExplorer::ExtractPropertyCellReferences(HeapEntry* entry,
1553 SetInternalReference(entry, "value", cell.value(),
1556 SetInternalReference(entry, "dependent_code", cell.dependent_code(),
1560 void V8HeapExplorer::ExtractAllocationSiteReferences(HeapEntry* entry,
1562 SetInternalReference(entry, "transition_info",
1565 SetInternalReference(entry, "nested_site", site.nested_site(),
1568 SetInternalReference(entry, "dependent_code", site.dependent_code(),
1573 HeapEntry* entry, ArrayBoilerplateDescription value) {
1575 SetInternalReference(entry, "constant_elements", constant_elements,
1581 HeapEntry* entry, RegExpBoilerplateDescription value) {
1606 void V8HeapExplorer::ExtractJSArrayBufferReferences(HeapEntry* entry,
1614 entry->SetNamedReference(HeapGraphEdge::kInternal, "backing_store",
1618 void V8HeapExplorer::ExtractJSPromiseReferences(HeapEntry* entry,
1620 SetInternalReference(entry, "reactions_or_result",
1626 HeapEntry* entry, JSGeneratorObject generator) {
1627 SetInternalReference(entry, "function", generator.function(),
1629 SetInternalReference(entry, "context", generator.context(),
1631 SetInternalReference(entry, "receiver", generator.receiver(),
1633 SetInternalReference(entry, "parameters_and_registers",
1638 void V8HeapExplorer::ExtractFixedArrayReferences(HeapEntry* entry,
1642 SetInternalReference(entry, i, array.get(i), array.OffsetOfElementAt(i));
1646 void V8HeapExplorer::ExtractNumberReference(HeapEntry* entry, Object number) {
1667 entry->SetNamedReference(HeapGraphEdge::kInternal, "value", child_entry,
1671 void V8HeapExplorer::ExtractBytecodeArrayReferences(HeapEntry* entry,
1680 void V8HeapExplorer::ExtractScopeInfoReferences(HeapEntry* entry,
1689 HeapEntry* entry, FeedbackVector feedback_vector) {
1693 SetWeakReference(entry, "optimized code", code_heap_object,
1698 HeapObject entry;
1699 if (maybe_entry.GetHeapObjectIfStrong(&entry) &&
1700 (entry.map(isolate()).instance_type() == WEAK_FIXED_ARRAY_TYPE ||
1701 entry.IsFixedArrayExact())) {
1702 TagObject(entry, "(feedback)", HeapEntry::kCode);
1707 void V8HeapExplorer::ExtractDescriptorArrayReferences(HeapEntry* entry,
1709 SetInternalReference(entry, "enum_cache", array.enum_cache(),
1720 SetWeakReference(entry, i, heap_object, offset);
1722 SetInternalReference(entry, i, heap_object, offset);
1729 HeapEntry* entry, T array) {
1734 SetWeakReference(entry, i, heap_object, header_size + i * kTaggedSize);
1736 SetInternalReference(entry, i, heap_object,
1743 HeapEntry* entry) {
1762 SetDataOrAccessorPropertyReference(details.kind(), entry, k, value,
1768 details.kind(), entry, descs.GetKey(i), descs.GetStrongValue(i));
1783 SetDataOrAccessorPropertyReference(details.kind(), entry, name, value);
1797 SetDataOrAccessorPropertyReference(details.kind(), entry, Name::cast(k),
1808 SetDataOrAccessorPropertyReference(details.kind(), entry, Name::cast(k),
1814 void V8HeapExplorer::ExtractAccessorPairProperty(HeapEntry* entry, Name key,
1819 SetPropertyReference(entry, key, accessors, nullptr, field_offset);
1822 SetPropertyReference(entry, key, getter, "get %s");
1826 SetPropertyReference(entry, key, setter, "set %s");
1831 HeapEntry* entry) {
1839 SetElementReference(entry, i, elements.get(i));
1849 SetElementReference(entry, index, dictionary.ValueAt(i));
1855 HeapEntry* entry) {
1859 SetInternalReference(entry, i, o, js_obj.GetEmbedderFieldOffset(i));
2013 HeapEntry* entry = GetEntry(obj);
2014 ExtractReferences(entry, obj);
2015 SetInternalReference(entry, "map", obj.map(cage_base),
2019 IndexedReferencesExtractor refs_extractor(this, obj, entry);
2028 ExtractLocation(entry, obj);
2284 HeapEntry* entry = GetEntry(obj);
2285 if (entry->name()[0] == '\0') {
2286 entry->set_name(tag);
2289 entry->set_type(*type);
2500 HeapEntry* entry, EmbedderGraph::Node* original_node,
2514 DCHECK_EQ(entry->id(), heap_object_map_->FindMergedNativeEntry(
2518 entry->set_detachedness(original_node->GetDetachedness());
2519 entry->set_name(MergeNames(
2520 names_, EmbedderGraphNodeName(names_, original_node), entry->name()));
2521 entry->set_type(EmbedderGraphNodeType(original_node));
2522 DCHECK_GE(entry->self_size() + original_node->SizeInBytes(),
2523 entry->self_size());
2524 entry->add_self_size(original_node->SizeInBytes());
2529 // Return the entry for the wrapper node if present.
2542 auto* entry = generator_->FindEntry(
2544 return entry;
2562 if (auto* entry = EntryForEmbedderGraphNode(node.get())) {
2565 HeapGraphEdge::kElement, entry, generator_,
2569 MergeNodeIntoEntry(entry, node.get(), node->WrapperNode());
2845 void HeapSnapshotJSONSerializer::SerializeNode(const HeapEntry* entry) {
2854 if (to_node_index(entry) != 0) {
2857 buffer_pos = utoa(entry->type(), buffer, buffer_pos);
2859 buffer_pos = utoa(GetStringId(entry->name()), buffer, buffer_pos);
2861 buffer_pos = utoa(entry->id(), buffer, buffer_pos);
2863 buffer_pos = utoa(entry->self_size(), buffer, buffer_pos);
2865 buffer_pos = utoa(entry->children_count(), buffer, buffer_pos);
2867 buffer_pos = utoa(entry->trace_node_id(), buffer, buffer_pos);
2869 buffer_pos = utoa(entry->detachedness(), buffer, buffer_pos);
2877 for (const HeapEntry& entry : entries) {
2878 SerializeNode(&entry);
3150 for (base::HashMap::Entry* entry = strings_.Start(); entry != nullptr;
3151 entry = strings_.Next(entry)) {
3152 int index = static_cast<int>(reinterpret_cast<uintptr_t>(entry->value));
3153 sorted_strings[index] = reinterpret_cast<const unsigned char*>(entry->key);