diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-02-26 18:28:18 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2018-02-27 19:26:44 +0200 |
commit | 941eed9f1f1654dd485ea2625d8ec4948cfe98c2 (patch) | |
tree | 7a4e78cc5ebb6bfbf31fd5aaa6747e6ed21c227c | |
parent | 7905bd68315d8f58c00c07c1ac5756f43de9f6c7 (diff) | |
download | qtlocation-mapboxgl-upstream/node-cb-call-asyncresource.tar.gz |
[node] Added Nan::AsyncResource in NodeMap::renderFinishedupstream/node-cb-call-asyncresource
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | platform/node/src/node_map.cpp | 12 |
2 files changed, 8 insertions, 6 deletions
diff --git a/package.json b/package.json index 977cd2b09c..ccdc2f31db 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "license": "BSD-2-Clause", "dependencies": { - "nan": "~2.8", + "nan": "^2.9.2", "node-pre-gyp": "^0.6.37", "npm-run-all": "^4.0.2" }, diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 0fe69e8ac9..64b1d226f6 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -464,6 +464,8 @@ void NodeMap::renderFinished() { assert(!callback); assert(!image.data); + Nan::AsyncResource resource("mbgl:NodeMap.renderFinished", handle()); + if (error) { std::string errorMessage; @@ -481,7 +483,7 @@ void NodeMap::renderFinished() { error = nullptr; assert(!error); - cb->Call(1, argv); + cb->Call(1, argv, &resource); } else if (img.data) { v8::Local<v8::Object> pixels = Nan::NewBuffer( reinterpret_cast<char *>(img.data.get()), img.bytes(), @@ -497,12 +499,12 @@ void NodeMap::renderFinished() { Nan::Null(), pixels }; - cb->Call(2, argv); + cb->Call(2, argv, &resource); } else { v8::Local<v8::Value> argv[] = { Nan::Error("Didn't get an image") }; - cb->Call(1, argv); + cb->Call(1, argv, &resource); } } @@ -1152,7 +1154,7 @@ NodeMap::~NodeMap() { if (map) release(); } -std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resource, mbgl::FileSource::Callback callback_) { +std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resource, mbgl::FileSource::Callback fileSourceCallback) { Nan::HandleScope scope; // Because this method may be called while this NodeMap is already eligible for garbage collection, // we need to explicitly hold onto our own handle here so that GC during a v8 call doesn't destroy @@ -1161,7 +1163,7 @@ std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resou v8::Local<v8::Value> argv[] = { Nan::New<v8::External>(this), - Nan::New<v8::External>(&callback_) + Nan::New<v8::External>(&fileSourceCallback) }; auto instance = Nan::New(NodeRequest::constructor)->NewInstance(2, argv); |