summaryrefslogtreecommitdiff
path: root/platform/node
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-14 13:47:02 -0400
commitce8f053adb91e2d78c67716bc5d1af797e6b2743 (patch)
treef7c032cb4829cb495b0694d483f35631769fc549 /platform/node
parent70337487d49c89c1a84245b60fd21306a301c49e (diff)
downloadqtlocation-mapboxgl-ce8f053adb91e2d78c67716bc5d1af797e6b2743.tar.gz
[node] enter new v8::Context to avoid leaking v8::FunctionTemplate in NodeMap::request
Diffstat (limited to 'platform/node')
-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 9a8941d790..00a3041f26 100644
--- a/platform/node/src/node_map.cpp
+++ b/platform/node/src/node_map.cpp
@@ -757,7 +757,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);