15 api_references_ = isolate->api_external_references();
16 if (api_references_ !=
nullptr) {
17 for (uint32_t
i = 0; api_references_[
i] != 0; ++
i)
count_.push_back(0);
20 map_ = isolate->external_reference_map();
21 if (
map_ !=
nullptr)
return;
23 isolate->set_external_reference_map(
map_);
34 const intptr_t* api_references = isolate->api_external_references();
35 if (api_references ==
nullptr)
return;
36 for (uint32_t
i = 0; api_references[
i] != 0; ++
i) {
46ExternalReferenceEncoder::~ExternalReferenceEncoder() {
47 if (!
v8_flags.external_reference_stats)
return;
48 if (api_references_ ==
nullptr)
return;
49 for (uint32_t
i = 0; api_references_[
i] != 0; ++
i) {
53 "index=%5d count=%5d %-60s\n",
i,
count_[
i],
74 void* addr =
reinterpret_cast<void*
>(address);
75 v8::base::OS::PrintError(
"Unknown external reference %p.\n", addr);
76 v8::base::OS::PrintError(
"%s\n",
90 if (maybe_index.
IsNothing())
return "<unknown>";
92 if (value.is_from_api())
return "<from api>";
93 return isolate->external_reference_table()->name(value.index());
V8_INLINE T FromJust() const &
V8_INLINE bool IsNothing() const
static uint32_t Encode(uint32_t index, bool is_from_api)
AddressToIndexHashMap * map_
ExternalReferenceEncoder(Isolate *isolate)
Maybe< Value > TryEncode(Address key) const
Value Encode(Address key) const
const char * NameOfAddress(Isolate *isolate, Address address) const
static constexpr int kSize
static const char * ResolveSymbol(void *address)
void Set(Type value, uint32_t index)
Maybe< uint32_t > Get(Type value) const
ZoneVector< RpoNumber > & result
V8_EXPORT_PRIVATE FlagValues v8_flags
Maybe< T > Just(const T &t)
#define DCHECK(condition)