Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/node_os.cc
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) {
result.emplace_back(OneByteString(isolate, ip));
result.emplace_back(OneByteString(isolate, netmask));
result.emplace_back(family);
result.emplace_back(FIXED_ONE_BYTE_STRING(isolate, mac));
result.emplace_back(OneByteString(isolate, mac.data(), mac.size() - 1));
result.emplace_back(
Boolean::New(env->isolate(), interfaces[i].is_internal));
if (interfaces[i].address.address4.sin_family == AF_INET6) {
Expand Down
31 changes: 16 additions & 15 deletions src/util-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,33 +160,34 @@ constexpr ContainerOfHelper<Inner, Outer> ContainerOf(Inner Outer::*field,

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
const char* data,
int length) {
return v8::String::NewFromOneByte(isolate,
reinterpret_cast<const uint8_t*>(data),
v8::NewStringType::kNormal,
length).ToLocalChecked();
int length,
v8::NewStringType type) {
return v8::String::NewFromOneByte(
isolate, reinterpret_cast<const uint8_t*>(data), type, length)
.ToLocalChecked();
}

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
const signed char* data,
int length) {
return v8::String::NewFromOneByte(isolate,
reinterpret_cast<const uint8_t*>(data),
v8::NewStringType::kNormal,
length).ToLocalChecked();
int length,
v8::NewStringType type) {
return v8::String::NewFromOneByte(
isolate, reinterpret_cast<const uint8_t*>(data), type, length)
.ToLocalChecked();
}

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
const unsigned char* data,
int length) {
return v8::String::NewFromOneByte(
isolate, data, v8::NewStringType::kNormal, length)
int length,
v8::NewStringType type) {
return v8::String::NewFromOneByte(isolate, data, type, length)
.ToLocalChecked();
}

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
std::string_view str) {
return OneByteString(isolate, str.data(), str.size());
std::string_view str,
v8::NewStringType type) {
return OneByteString(isolate, str.data(), str.size(), type);
}

char ToLower(char c) {
Expand Down
40 changes: 20 additions & 20 deletions src/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -331,37 +331,37 @@ class KVStore {
};

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

// For the people that compile with -funsigned-char.
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
const signed char* data,
int length = -1);
inline v8::Local<v8::String> OneByteString(
v8::Isolate* isolate,
const signed char* data,
int length = -1,
v8::NewStringType type = v8::NewStringType::kNormal);

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
const unsigned char* data,
int length = -1);
inline v8::Local<v8::String> OneByteString(
v8::Isolate* isolate,
const unsigned char* data,
int length = -1,
v8::NewStringType type = v8::NewStringType::kNormal);

inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
std::string_view str);
inline v8::Local<v8::String> OneByteString(
v8::Isolate* isolate,
std::string_view str,
v8::NewStringType type = v8::NewStringType::kNormal);

// Used to be a macro, hence the uppercase name.
template <std::size_t N>
requires(N > 0)
inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(v8::Isolate* isolate,
const char (&data)[N]) {
CHECK_EQ(data[N - 1], '\0');
return OneByteString(isolate, data, N - 1);
}

template <std::size_t N>
requires(N > 0)
inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(
v8::Isolate* isolate, const std::array<char, N>& arr) {
CHECK_EQ(arr[N - 1], '\0');
return OneByteString(isolate, arr.data(), N - 1);
return OneByteString(isolate, data, N - 1, v8::NewStringType::kInternalized);
}

// tolower() is locale-sensitive. Use ToLower() instead.
Expand Down
Loading