Skip to content

Commit

Permalink
src: remove calls to deprecated v8 functions (NewFromUtf8)
Browse files Browse the repository at this point in the history
Remove all calls to deprecated v8 functions (here: String::NewFromUtf8) inside
the code (src directory only).

PR-URL: #21926
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
ryzokuken authored and targos committed Jul 31, 2018
1 parent 0151486 commit 2c95b96
Show file tree
Hide file tree
Showing 12 changed files with 89 additions and 54 deletions.
4 changes: 3 additions & 1 deletion src/cares_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1942,7 +1942,9 @@ void CanonicalizeIP(const FunctionCallbackInfo<Value>& args) {
char canonical_ip[INET6_ADDRSTRLEN];
const int af = (rc == 4 ? AF_INET : AF_INET6);
CHECK_EQ(0, uv_inet_ntop(af, &result, canonical_ip, sizeof(canonical_ip)));
args.GetReturnValue().Set(String::NewFromUtf8(isolate, canonical_ip));
v8::Local<String> val = String::NewFromUtf8(isolate, canonical_ip,
v8::NewStringType::kNormal).ToLocalChecked();
args.GetReturnValue().Set(val);
}

void GetAddrInfo(const FunctionCallbackInfo<Value>& args) {
Expand Down
21 changes: 15 additions & 6 deletions src/exceptions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ Local<Value> ErrnoException(Isolate* isolate,
Local<String> path_string;
if (path != nullptr) {
// FIXME(bnoordhuis) It's questionable to interpret the file path as UTF-8.
path_string = String::NewFromUtf8(env->isolate(), path);
path_string = String::NewFromUtf8(env->isolate(), path,
v8::NewStringType::kNormal).ToLocalChecked();
}

if (path_string.IsEmpty() == false) {
Expand Down Expand Up @@ -68,13 +69,17 @@ static Local<String> StringFromPath(Isolate* isolate, const char* path) {
#ifdef _WIN32
if (strncmp(path, "\\\\?\\UNC\\", 8) == 0) {
return String::Concat(FIXED_ONE_BYTE_STRING(isolate, "\\\\"),
String::NewFromUtf8(isolate, path + 8));
String::NewFromUtf8(isolate, path + 8,
v8::NewStringType::kNormal)
.ToLocalChecked());
} else if (strncmp(path, "\\\\?\\", 4) == 0) {
return String::NewFromUtf8(isolate, path + 4);
return String::NewFromUtf8(isolate, path + 4, v8::NewStringType::kNormal)
.ToLocalChecked();
}
#endif

return String::NewFromUtf8(isolate, path);
return String::NewFromUtf8(isolate, path, v8::NewStringType::kNormal)
.ToLocalChecked();
}


Expand Down Expand Up @@ -183,7 +188,9 @@ Local<Value> WinapiErrnoException(Isolate* isolate,
Local<String> cons1 =
String::Concat(message, FIXED_ONE_BYTE_STRING(isolate, " '"));
Local<String> cons2 =
String::Concat(cons1, String::NewFromUtf8(isolate, path));
String::Concat(cons1,
String::NewFromUtf8(isolate, path, v8::NewStringType::kNormal)
.ToLocalChecked());
Local<String> cons3 =
String::Concat(cons2, FIXED_ONE_BYTE_STRING(isolate, "'"));
e = Exception::Error(cons3);
Expand All @@ -195,7 +202,9 @@ Local<Value> WinapiErrnoException(Isolate* isolate,
obj->Set(env->errno_string(), Integer::New(isolate, errorno));

if (path != nullptr) {
obj->Set(env->path_string(), String::NewFromUtf8(isolate, path));
obj->Set(env->path_string(),
String::NewFromUtf8(isolate, path, v8::NewStringType::kNormal)
.ToLocalChecked());
}

if (syscall != nullptr) {
Expand Down
36 changes: 23 additions & 13 deletions src/node.cc
Original file line number Diff line number Diff line change
Expand Up @@ -965,7 +965,8 @@ void AppendExceptionLine(Environment* env,
arrow[off] = '\n';
arrow[off + 1] = '\0';

Local<String> arrow_str = String::NewFromUtf8(env->isolate(), arrow);
Local<String> arrow_str = String::NewFromUtf8(env->isolate(), arrow,
v8::NewStringType::kNormal).ToLocalChecked();

const bool can_set_arrow = !arrow_str.IsEmpty() && !err_obj.IsEmpty();
// If allocating arrow_str failed, print it out. There's not much else to do.
Expand Down Expand Up @@ -1741,7 +1742,8 @@ static void GetLinkedBinding(const FunctionCallbackInfo<Value>& args) {

Local<Object> module = Object::New(env->isolate());
Local<Object> exports = Object::New(env->isolate());
Local<String> exports_prop = String::NewFromUtf8(env->isolate(), "exports");
Local<String> exports_prop = String::NewFromUtf8(env->isolate(), "exports",
v8::NewStringType::kNormal).ToLocalChecked();
module->Set(exports_prop, exports);

if (mod->nm_context_register_func != nullptr) {
Expand All @@ -1764,7 +1766,8 @@ static void ProcessTitleGetter(Local<Name> property,
const PropertyCallbackInfo<Value>& info) {
char buffer[512];
uv_get_process_title(buffer, sizeof(buffer));
info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), buffer));
info.GetReturnValue().Set(String::NewFromUtf8(info.GetIsolate(), buffer,
v8::NewStringType::kNormal).ToLocalChecked());
}


Expand All @@ -1789,7 +1792,8 @@ static void EnvGetter(Local<Name> property,
node::Utf8Value key(isolate, property);
const char* val = getenv(*key);
if (val) {
return info.GetReturnValue().Set(String::NewFromUtf8(isolate, val));
return info.GetReturnValue().Set(String::NewFromUtf8(isolate, val,
v8::NewStringType::kNormal).ToLocalChecked());
}
#else // _WIN32
node::TwoByteValue key(isolate, property);
Expand Down Expand Up @@ -1917,8 +1921,8 @@ static void EnvEnumerator(const PropertyCallbackInfo<Array>& info) {
const int length = s ? s - var : strlen(var);
argv[idx] = String::NewFromUtf8(isolate,
var,
String::kNormalString,
length);
v8::NewStringType::kNormal,
length).ToLocalChecked();
if (++idx >= arraysize(argv)) {
fn->Call(ctx, envarr, idx, argv).ToLocalChecked();
idx = 0;
Expand Down Expand Up @@ -2195,14 +2199,16 @@ void SetupProcessObject(Environment* env,
// process.argv
Local<Array> arguments = Array::New(env->isolate(), argc);
for (int i = 0; i < argc; ++i) {
arguments->Set(i, String::NewFromUtf8(env->isolate(), argv[i]));
arguments->Set(i, String::NewFromUtf8(env->isolate(), argv[i],
v8::NewStringType::kNormal).ToLocalChecked());
}
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "argv"), arguments);

// process.execArgv
Local<Array> exec_arguments = Array::New(env->isolate(), exec_argc);
for (int i = 0; i < exec_argc; ++i) {
exec_arguments->Set(i, String::NewFromUtf8(env->isolate(), exec_argv[i]));
exec_arguments->Set(i, String::NewFromUtf8(env->isolate(), exec_argv[i],
v8::NewStringType::kNormal).ToLocalChecked());
}
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "execArgv"),
exec_arguments);
Expand Down Expand Up @@ -2234,7 +2240,8 @@ void SetupProcessObject(Environment* env,
if (eval_string) {
READONLY_PROPERTY(process,
"_eval",
String::NewFromUtf8(env->isolate(), eval_string));
String::NewFromUtf8(env->isolate(), eval_string,
v8::NewStringType::kNormal).ToLocalChecked());
}

// -p, --print
Expand All @@ -2257,7 +2264,9 @@ void SetupProcessObject(Environment* env,
Local<Array> array = Array::New(env->isolate());
for (unsigned int i = 0; i < preload_modules.size(); ++i) {
Local<String> module = String::NewFromUtf8(env->isolate(),
preload_modules[i].c_str());
preload_modules[i].c_str(),
v8::NewStringType::kNormal)
.ToLocalChecked();
array->Set(i, module);
}
READONLY_PROPERTY(process,
Expand Down Expand Up @@ -2342,10 +2351,11 @@ void SetupProcessObject(Environment* env,
if (uv_exepath(exec_path, &exec_path_len) == 0) {
exec_path_value = String::NewFromUtf8(env->isolate(),
exec_path,
String::kNormalString,
exec_path_len);
v8::NewStringType::kNormal,
exec_path_len).ToLocalChecked();
} else {
exec_path_value = String::NewFromUtf8(env->isolate(), argv[0]);
exec_path_value = String::NewFromUtf8(env->isolate(), argv[0],
v8::NewStringType::kNormal).ToLocalChecked();
}
process->Set(FIXED_ONE_BYTE_STRING(env->isolate(), "execPath"),
exec_path_value);
Expand Down
12 changes: 8 additions & 4 deletions src/node.h
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,8 @@ NODE_EXTERN struct uv_loop_s* GetCurrentEventLoop(v8::Isolate* isolate);
v8::Isolate* isolate = target->GetIsolate(); \
v8::Local<v8::Context> context = isolate->GetCurrentContext(); \
v8::Local<v8::String> constant_name = \
v8::String::NewFromUtf8(isolate, #constant); \
v8::String::NewFromUtf8(isolate, #constant, \
v8::NewStringType::kNormal).ToLocalChecked(); \
v8::Local<v8::Number> constant_value = \
v8::Number::New(isolate, static_cast<double>(constant)); \
v8::PropertyAttribute constant_attributes = \
Expand Down Expand Up @@ -344,7 +345,8 @@ inline void NODE_SET_METHOD(v8::Local<v8::Template> recv,
v8::HandleScope handle_scope(isolate);
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate,
callback);
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name);
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name,
v8::NewStringType::kNormal).ToLocalChecked();
t->SetClassName(fn_name);
recv->Set(fn_name, t);
}
Expand All @@ -358,7 +360,8 @@ inline void NODE_SET_METHOD(v8::Local<v8::Object> recv,
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate,
callback);
v8::Local<v8::Function> fn = t->GetFunction();
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name);
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name,
v8::NewStringType::kNormal).ToLocalChecked();
fn->SetName(fn_name);
recv->Set(fn_name, fn);
}
Expand All @@ -374,7 +377,8 @@ inline void NODE_SET_PROTOTYPE_METHOD(v8::Local<v8::FunctionTemplate> recv,
v8::Local<v8::Signature> s = v8::Signature::New(isolate, recv);
v8::Local<v8::FunctionTemplate> t =
v8::FunctionTemplate::New(isolate, callback, v8::Local<v8::Value>(), s);
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name);
v8::Local<v8::String> fn_name = v8::String::NewFromUtf8(isolate, name,
v8::NewStringType::kNormal).ToLocalChecked();
t->SetClassName(fn_name);
recv->PrototypeTemplate()->Set(fn_name, t);
}
Expand Down
28 changes: 14 additions & 14 deletions src/node_crypto.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1563,8 +1563,8 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->subject_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
}
USE(BIO_reset(bio.get()));

Expand All @@ -1573,8 +1573,8 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->issuer_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
}
USE(BIO_reset(bio.get()));

Expand All @@ -1601,8 +1601,8 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, keys[i],
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();

USE(BIO_reset(bio.get()));
}
Expand All @@ -1620,8 +1620,8 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->modulus_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
USE(BIO_reset(bio.get()));

uint64_t exponent_word = static_cast<uint64_t>(BN_get_word(e));
Expand All @@ -1635,8 +1635,8 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->exponent_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
USE(BIO_reset(bio.get()));

int size = i2d_RSA_PUBKEY(rsa.get(), nullptr);
Expand All @@ -1655,16 +1655,16 @@ static Local<Object> X509ToObject(Environment* env, X509* cert) {
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->valid_from_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
USE(BIO_reset(bio.get()));

ASN1_TIME_print(bio.get(), X509_get_notAfter(cert));
BIO_get_mem_ptr(bio.get(), &mem);
info->Set(context, env->valid_to_string(),
String::NewFromUtf8(env->isolate(), mem->data,
String::kNormalString,
mem->length)).FromJust();
NewStringType::kNormal,
mem->length).ToLocalChecked()).FromJust();
bio.reset();

unsigned char md[EVP_MAX_MD_SIZE];
Expand Down
4 changes: 2 additions & 2 deletions src/node_file.cc
Original file line number Diff line number Diff line change
Expand Up @@ -794,8 +794,8 @@ static void InternalModuleReadJSON(const FunctionCallbackInfo<Value>& args) {
Local<String> chars_string =
String::NewFromUtf8(env->isolate(),
&chars[start],
String::kNormalString,
size);
v8::NewStringType::kNormal,
size).ToLocalChecked();
args.GetReturnValue().Set(chars_string);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/node_i18n.cc
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ void GetVersion(const FunctionCallbackInfo<Value>& args) {
TYPE_ICU ","
TYPE_UNICODE ","
TYPE_CLDR ","
TYPE_TZ));
TYPE_TZ, v8::NewStringType::kNormal).ToLocalChecked());
} else {
CHECK_GE(args.Length(), 1);
CHECK(args[0]->IsString());
Expand All @@ -565,7 +565,7 @@ void GetVersion(const FunctionCallbackInfo<Value>& args) {
// Success.
args.GetReturnValue().Set(
String::NewFromUtf8(env->isolate(),
versionString));
versionString, v8::NewStringType::kNormal).ToLocalChecked());
}
}
}
Expand Down
6 changes: 4 additions & 2 deletions src/node_internals.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ struct sockaddr;
do { \
v8::Isolate* isolate = target->GetIsolate(); \
v8::Local<v8::String> constant_name = \
v8::String::NewFromUtf8(isolate, name); \
v8::String::NewFromUtf8(isolate, name, v8::NewStringType::kNormal) \
.ToLocalChecked(); \
v8::Local<v8::String> constant_value = \
v8::String::NewFromUtf8(isolate, constant); \
v8::String::NewFromUtf8(isolate, constant, v8::NewStringType::kNormal)\
.ToLocalChecked(); \
v8::PropertyAttribute constant_attributes = \
static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontDelete); \
target->DefineOwnProperty(isolate->GetCurrentContext(), \
Expand Down
7 changes: 4 additions & 3 deletions src/node_os.cc
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,8 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) {
// contain non-ASCII characters. On UNIX, it's just a binary string with
// no particular encoding but we treat it as a one-byte Latin-1 string.
#ifdef _WIN32
name = String::NewFromUtf8(env->isolate(), raw_name);
name = String::NewFromUtf8(env->isolate(), raw_name,
v8::NewStringType::kNormal).ToLocalChecked();
#else
name = OneByteString(env->isolate(), raw_name);
#endif
Expand Down Expand Up @@ -335,8 +336,8 @@ static void GetHomeDirectory(const FunctionCallbackInfo<Value>& args) {

Local<String> home = String::NewFromUtf8(env->isolate(),
buf,
String::kNormalString,
len);
v8::NewStringType::kNormal,
len).ToLocalChecked();
args.GetReturnValue().Set(home);
}

Expand Down
12 changes: 8 additions & 4 deletions src/node_perf.cc
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,18 @@ inline void InitObject(const PerformanceEntry& entry, Local<Object> obj) {
env->name_string(),
String::NewFromUtf8(isolate,
entry.name().c_str(),
String::kNormalString),
attr).FromJust();
v8::NewStringType::kNormal)
.ToLocalChecked(),
attr)
.FromJust();
obj->DefineOwnProperty(context,
FIXED_ONE_BYTE_STRING(isolate, "entryType"),
String::NewFromUtf8(isolate,
entry.type().c_str(),
String::kNormalString),
attr).FromJust();
v8::NewStringType::kNormal)
.ToLocalChecked(),
attr)
.FromJust();
obj->DefineOwnProperty(context,
FIXED_ONE_BYTE_STRING(isolate, "startTime"),
Number::New(isolate, entry.startTime()),
Expand Down
4 changes: 2 additions & 2 deletions src/node_process.cc
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ void Cwd(const FunctionCallbackInfo<Value>& args) {

Local<String> cwd = String::NewFromUtf8(env->isolate(),
buf,
String::kNormalString,
cwd_len);
v8::NewStringType::kNormal,
cwd_len).ToLocalChecked();
args.GetReturnValue().Set(cwd);
}

Expand Down
5 changes: 4 additions & 1 deletion src/spawn_sync.cc
Original file line number Diff line number Diff line change
Expand Up @@ -683,7 +683,10 @@ Local<Object> SyncProcessRunner::BuildResultObject() {
if (term_signal_ > 0)
js_result->Set(context, env()->signal_string(),
String::NewFromUtf8(env()->isolate(),
signo_string(term_signal_))).FromJust();
signo_string(term_signal_),
v8::NewStringType::kNormal)
.ToLocalChecked())
.FromJust();
else
js_result->Set(context, env()->signal_string(),
Null(env()->isolate())).FromJust();
Expand Down

0 comments on commit 2c95b96

Please sign in to comment.