summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Morris <mikemorris@users.noreply.github.com>2016-07-12 16:16:45 -0400
committerMike Morris <mikemorris@users.noreply.github.com>2016-07-13 00:02:14 -0400
commit3613c71cfb68d47c3509f2f2350b0e239790e086 (patch)
tree81fcba87e27c58a9897cfad861001647cdc1a15d
parent5a91245ec43f682a0559668efdf6ea8d578de04d (diff)
downloadqtlocation-mapboxgl-3613c71cfb68d47c3509f2f2350b0e239790e086.tar.gz
[node] enter new v8::Context to avoid leaking v8::FunctionTemplate in NodeMap::request
-rw-r--r--platform/node/src/node_map.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp
index 77d650e2e9..3c44155401 100644
--- a/platform/node/src/node_map.cpp
+++ b/platform/node/src/node_map.cpp
@@ -738,7 +738,12 @@ NodeMap::~NodeMap() {
}
std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resource, Callback callback_) {
- Nan::HandleScope scope;
+ Nan::HandleScope handleScope;
+
+ // Enter a new v8::Context to avoid leaking v8::FunctionTemplate
+ // from Nan::New<v8::Function>
+ v8::Local<v8::Context> context = v8::Context::New(v8::Isolate::GetCurrent());
+ v8::Context::Scope scope(context);
auto requestHandle = NodeRequest::Create(resource, callback_)->ToObject();
auto request = Nan::ObjectWrap::Unwrap<NodeRequest>(requestHandle);