diff options
Diffstat (limited to 'platform/node/src/node_map.cpp')
-rw-r--r-- | platform/node/src/node_map.cpp | 21 |
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 |