summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-02-26 18:28:18 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2018-02-27 19:26:44 +0200
commit941eed9f1f1654dd485ea2625d8ec4948cfe98c2 (patch)
tree7a4e78cc5ebb6bfbf31fd5aaa6747e6ed21c227c
parent7905bd68315d8f58c00c07c1ac5756f43de9f6c7 (diff)
downloadqtlocation-mapboxgl-upstream/node-cb-call-asyncresource.tar.gz
[node] Added Nan::AsyncResource in NodeMap::renderFinishedupstream/node-cb-call-asyncresource
-rw-r--r--package.json2
-rw-r--r--platform/node/src/node_map.cpp12
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);