Skip to content

Commit 2bb1525

Browse files
addaleaxtargos
authored andcommitted
src: create strings in FIXED_ONE_BYTE_STRING as internalized
These string keys can generally be assumed to be long-lived. PR-URL: #59826 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent 03116a7 commit 2bb1525

File tree

2 files changed

+36
-27
lines changed

2 files changed

+36
-27
lines changed

src/util-inl.h

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -160,33 +160,34 @@ constexpr ContainerOfHelper<Inner, Outer> ContainerOf(Inner Outer::*field,
160160

161161
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
162162
const char* data,
163-
int length) {
164-
return v8::String::NewFromOneByte(isolate,
165-
reinterpret_cast<const uint8_t*>(data),
166-
v8::NewStringType::kNormal,
167-
length).ToLocalChecked();
163+
int length,
164+
v8::NewStringType type) {
165+
return v8::String::NewFromOneByte(
166+
isolate, reinterpret_cast<const uint8_t*>(data), type, length)
167+
.ToLocalChecked();
168168
}
169169

170170
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
171171
const signed char* data,
172-
int length) {
173-
return v8::String::NewFromOneByte(isolate,
174-
reinterpret_cast<const uint8_t*>(data),
175-
v8::NewStringType::kNormal,
176-
length).ToLocalChecked();
172+
int length,
173+
v8::NewStringType type) {
174+
return v8::String::NewFromOneByte(
175+
isolate, reinterpret_cast<const uint8_t*>(data), type, length)
176+
.ToLocalChecked();
177177
}
178178

179179
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
180180
const unsigned char* data,
181-
int length) {
182-
return v8::String::NewFromOneByte(
183-
isolate, data, v8::NewStringType::kNormal, length)
181+
int length,
182+
v8::NewStringType type) {
183+
return v8::String::NewFromOneByte(isolate, data, type, length)
184184
.ToLocalChecked();
185185
}
186186

187187
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
188-
std::string_view str) {
189-
return OneByteString(isolate, str.data(), str.size());
188+
std::string_view str,
189+
v8::NewStringType type) {
190+
return OneByteString(isolate, str.data(), str.size(), type);
190191
}
191192

192193
char ToLower(char c) {

src/util.h

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -331,29 +331,37 @@ class KVStore {
331331
};
332332

333333
// Convenience wrapper around v8::String::NewFromOneByte().
334-
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
335-
const char* data,
336-
int length = -1);
334+
inline v8::Local<v8::String> OneByteString(
335+
v8::Isolate* isolate,
336+
const char* data,
337+
int length = -1,
338+
v8::NewStringType type = v8::NewStringType::kNormal);
337339

338340
// For the people that compile with -funsigned-char.
339-
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
340-
const signed char* data,
341-
int length = -1);
341+
inline v8::Local<v8::String> OneByteString(
342+
v8::Isolate* isolate,
343+
const signed char* data,
344+
int length = -1,
345+
v8::NewStringType type = v8::NewStringType::kNormal);
342346

343-
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
344-
const unsigned char* data,
345-
int length = -1);
347+
inline v8::Local<v8::String> OneByteString(
348+
v8::Isolate* isolate,
349+
const unsigned char* data,
350+
int length = -1,
351+
v8::NewStringType type = v8::NewStringType::kNormal);
346352

347-
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
348-
std::string_view str);
353+
inline v8::Local<v8::String> OneByteString(
354+
v8::Isolate* isolate,
355+
std::string_view str,
356+
v8::NewStringType type = v8::NewStringType::kNormal);
349357

350358
// Used to be a macro, hence the uppercase name.
351359
template <std::size_t N>
352360
requires(N > 0)
353361
inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(v8::Isolate* isolate,
354362
const char (&data)[N]) {
355363
CHECK_EQ(data[N - 1], '\0');
356-
return OneByteString(isolate, data, N - 1);
364+
return OneByteString(isolate, data, N - 1, v8::NewStringType::kInternalized);
357365
}
358366

359367
// tolower() is locale-sensitive. Use ToLower() instead.

0 commit comments

Comments
 (0)