summaryrefslogtreecommitdiff
path: root/platform/node/src/node_map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/node/src/node_map.cpp')
-rw-r--r--platform/node/src/node_map.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp
index f88b6c6c79..e59982ad99 100644
--- a/platform/node/src/node_map.cpp
+++ b/platform/node/src/node_map.cpp
@@ -544,7 +544,9 @@ void NodeMap::renderFinished() {
},
img.data.get()
).ToLocalChecked();
- img.data.release();
+ if (!pixels.IsEmpty()) {
+ img.data.release();
+ }
v8::Local<v8::Value> argv[] = {
Nan::Null(),
@@ -1244,20 +1246,19 @@ std::unique_ptr<mbgl::AsyncRequest> NodeFileSource::request(const mbgl::Resource
// *this while we're still executing code.
nodeMap->handle();
+ auto asyncRequest = std::make_unique<node_mbgl::NodeAsyncRequest>();
+
v8::Local<v8::Value> argv[] = {
Nan::New<v8::External>(nodeMap),
- Nan::New<v8::External>(&callback_)
+ Nan::New<v8::External>(&callback_),
+ Nan::New<v8::External>(asyncRequest.get()),
+ Nan::New(resource.url).ToLocalChecked(),
+ Nan::New<v8::Integer>(resource.kind)
};
- auto instance = Nan::NewInstance(Nan::New(node_mbgl::NodeRequest::constructor), 2, argv).ToLocalChecked();
-
- Nan::Set(instance, Nan::New("url").ToLocalChecked(), Nan::New(resource.url).ToLocalChecked());
- Nan::Set(instance, Nan::New("kind").ToLocalChecked(), Nan::New<v8::Integer>(resource.kind));
-
- auto req = Nan::ObjectWrap::Unwrap<node_mbgl::NodeRequest>(instance);
- req->Execute();
+ Nan::NewInstance(Nan::New(node_mbgl::NodeRequest::constructor), 5, argv).ToLocalChecked();
- return std::make_unique<node_mbgl::NodeRequest::NodeAsyncRequest>(req);
+ return asyncRequest;
}
} // namespace node_mbgl