18 return strcmp(
reinterpret_cast<char*
>(key1),
reinterpret_cast<char*
>(key2)) ==
33 int len =
static_cast<int>(strlen(src));
35 if (entry->
value ==
nullptr) {
43 reinterpret_cast<void*
>(
reinterpret_cast<size_t>(entry->
value) + 1);
44 return reinterpret_cast<const char*
>(entry->
key);
47const char* StringsStorage::GetFormatted(
const char* format, ...) {
49 va_start(
args, format);
58 if (entry->
value ==
nullptr) {
66 reinterpret_cast<void*
>(
reinterpret_cast<size_t>(entry->
value) + 1);
67 return reinterpret_cast<const char*
>(entry->
key);
81 if (!IsString(sym->description())) {
85 uint32_t length = std::min(
v8_flags.heap_snapshot_string_limit.value(),
86 description->length());
87 size_t data_length = 0;
88 auto data = description->ToCString(0, length, &data_length);
89 if (sym->is_private_name()) {
92 auto str_length = 8 + data_length + 1 + 1;
94 snprintf(str_result, str_length,
"<symbol %s>", data.get());
102 std::min(
v8_flags.heap_snapshot_string_limit.value(), str->length());
103 size_t data_length = 0;
104 std::unique_ptr<char[]> data = str->ToCString(0, length, &data_length);
106 }
else if (IsSymbol(name)) {
113 return GetFormatted(
"%d", index);
117 if (IsString(name)) {
120 std::min(
v8_flags.heap_snapshot_string_limit.value(), str->length());
121 size_t data_length = 0;
122 std::unique_ptr<char[]> data = str->ToCString(0, length, &data_length);
124 size_t cons_length = data_length + strlen(prefix) + 1;
126 snprintf(cons_result, cons_length,
"%s%s", prefix, data.get());
129 }
else if (IsSymbol(name)) {
137inline uint32_t ComputeStringHash(
const char* str,
size_t len) {
149 size_t len = strlen(str);
150 uint32_t hash = ComputeStringHash(str, len);
156 if (!entry || entry->
key != str) {
162 reinterpret_cast<void*
>(
reinterpret_cast<size_t>(entry->
value) - 1);
164 if (entry->
value == 0) {
182 uint32_t hash = ComputeStringHash(str, len);
static constexpr T decode(U value)
Entry * Next(Entry *entry) const
uint32_t occupancy() const
Entry * LookupOrInsert(const Key &key, uint32_t hash)
Value Remove(const Key &key, uint32_t hash)
Entry * Lookup(const Key &key, uint32_t hash) const
static Vector< T > New(size_t length)
constexpr T * begin() const
static uint32_t HashSequentialString(const char_t *chars, uint32_t length, uint64_t seed)
const char * GetConsName(const char *prefix, Tagged< Name > name)
const char * GetSymbol(Tagged< Symbol > sym)
size_t GetStringCountForTesting() const
const char * GetCopy(const char *src)
base::CustomMatcherHashMap::Entry * GetEntry(const char *str, size_t len)
base::CustomMatcherHashMap names_
const char * GetName(Tagged< Name > name)
const char * GetVFormatted(const char *format, va_list args)
const char * AddOrDisposeString(char *str, size_t len)
static bool StringsMatch(void *key1, void *key2)
bool Release(const char *str)
base::Vector< const DirectHandle< Object > > args
ZoneVector< RpoNumber > & result
constexpr uint32_t RotateLeft32(uint32_t value, uint32_t shift)
void StrNCpy(base::Vector< char > dest, const char *src, size_t n)
int VSNPrintF(Vector< char > str, const char *format, va_list args)
void DeleteArray(T *array)
static const uint64_t kZeroHashSeed
V8_EXPORT_PRIVATE FlagValues v8_flags
T * NewArray(size_t size)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK(condition)