Skip to content

Commit

Permalink
src: replace ToLocalChecked uses with ToLocal in node-file
Browse files Browse the repository at this point in the history
  • Loading branch information
jasnell committed Jul 16, 2024
1 parent cff7da7 commit 3a97b25
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 18 deletions.
33 changes: 24 additions & 9 deletions src/node_file-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,14 @@ void FSReqPromise<AliasedBufferT>::Reject(v8::Local<v8::Value> reject) {
finished_ = true;
v8::HandleScope scope(env()->isolate());
InternalCallbackScope callback_scope(this);
v8::Local<v8::Value> value =
object()->Get(env()->context(),
env()->promise_string()).ToLocalChecked();
v8::Local<v8::Value> value;
if (!object()->Get(env()->context(),
env()->promise_string()).ToLocal(&value)) {
// If we hit this, getting the value from the object failed and
// an error was likely scheduled. We could try to reject the promise
// but let's just allow the error to propagate.
return;
}
v8::Local<v8::Promise::Resolver> resolver = value.As<v8::Promise::Resolver>();
USE(resolver->Reject(env()->context(), reject).FromJust());
}
Expand All @@ -233,9 +238,14 @@ void FSReqPromise<AliasedBufferT>::Resolve(v8::Local<v8::Value> value) {
finished_ = true;
v8::HandleScope scope(env()->isolate());
InternalCallbackScope callback_scope(this);
v8::Local<v8::Value> val =
object()->Get(env()->context(),
env()->promise_string()).ToLocalChecked();
v8::Local<v8::Value> val;
if (!object()->Get(env()->context(),
env()->promise_string()).ToLocal(&val)) {
// If we hit this, getting the value from the object failed and
// an error was likely scheduled. We could try to reject the promise
// but let's just allow the error to propagate.
return;
}
v8::Local<v8::Promise::Resolver> resolver = val.As<v8::Promise::Resolver>();
USE(resolver->Resolve(env()->context(), value).FromJust());
}
Expand All @@ -255,9 +265,14 @@ void FSReqPromise<AliasedBufferT>::ResolveStatFs(const uv_statfs_t* stat) {
template <typename AliasedBufferT>
void FSReqPromise<AliasedBufferT>::SetReturnValue(
const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Local<v8::Value> val =
object()->Get(env()->context(),
env()->promise_string()).ToLocalChecked();
v8::Local<v8::Value> val;
if (!object()->Get(env()->context(),
env()->promise_string()).ToLocal(&val)) {
// If we hit this, getting the value from the object failed and
// an error was likely scheduled. We could try to reject the promise
// but let's just allow the error to propagate.
return;
}
v8::Local<v8::Promise::Resolver> resolver = val.As<v8::Promise::Resolver>();
args.GetReturnValue().Set(resolver->GetPromise());
}
Expand Down
29 changes: 20 additions & 9 deletions src/node_file.cc
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,8 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {

auto maybe_resolver = Promise::Resolver::New(context);
CHECK(!maybe_resolver.IsEmpty());
Local<Promise::Resolver> resolver = maybe_resolver.ToLocalChecked();
Local<Promise::Resolver> resolver;
if (!maybe_resolver.ToLocal(&resolver)) return {};
Local<Promise> promise = resolver.As<Promise>();

Local<Object> close_req_obj;
Expand Down Expand Up @@ -847,8 +848,10 @@ void AfterStringPath(uv_fs_t* req) {
&error);
if (link.IsEmpty())
req_wrap->Reject(error);
else
req_wrap->Resolve(link.ToLocalChecked());
else {
Local<Value> val;
if (link.ToLocal(&val)) req_wrap->Resolve(val);
}
}
}

Expand All @@ -867,8 +870,10 @@ void AfterStringPtr(uv_fs_t* req) {
&error);
if (link.IsEmpty())
req_wrap->Reject(error);
else
req_wrap->Resolve(link.ToLocalChecked());
else {
Local<Value> val;
if (link.ToLocal(&val)) req_wrap->Resolve(val);
}
}
}

Expand Down Expand Up @@ -2262,7 +2267,8 @@ static void WriteBuffers(const FunctionCallbackInfo<Value>& args) {
MaybeStackBuffer<uv_buf_t> iovs(chunks->Length());

for (uint32_t i = 0; i < iovs.length(); i++) {
Local<Value> chunk = chunks->Get(env->context(), i).ToLocalChecked();
Local<Value> chunk;
if (!chunks->Get(env->context(), i).ToLocal(&chunk)) return;
CHECK(Buffer::HasInstance(chunk));
iovs[i] = uv_buf_init(Buffer::Data(chunk), Buffer::Length(chunk));
}
Expand Down Expand Up @@ -2602,8 +2608,12 @@ static void ReadFileUtf8(const FunctionCallbackInfo<Value>& args) {
}
FS_SYNC_TRACE_END(read);

args.GetReturnValue().Set(
ToV8Value(env->context(), result, isolate).ToLocalChecked());
Local<Value> val;
if (!ToV8Value(env->context(), result, isolate).ToLocal(&val)) {
return;
}

args.GetReturnValue().Set(val);
}

// Wrapper for readv(2).
Expand Down Expand Up @@ -2631,7 +2641,8 @@ static void ReadBuffers(const FunctionCallbackInfo<Value>& args) {

// Init uv buffers from ArrayBufferViews
for (uint32_t i = 0; i < iovs.length(); i++) {
Local<Value> buffer = buffers->Get(env->context(), i).ToLocalChecked();
Local<Value> buffer;
if (!buffers->Get(env->context(), i).ToLocal(&buffer)) return;
CHECK(Buffer::HasInstance(buffer));
iovs[i] = uv_buf_init(Buffer::Data(buffer), Buffer::Length(buffer));
}
Expand Down

0 comments on commit 3a97b25

Please sign in to comment.