diff options
author | Mike Morris <mikemorris@users.noreply.github.com> | 2016-07-12 19:22:52 -0400 |
---|---|---|
committer | Mike Morris <mikemorris@users.noreply.github.com> | 2016-07-13 00:02:14 -0400 |
commit | 43cf669c6b87dd6747e4e61d0cad53382e497be2 (patch) | |
tree | b431121c07fbba7455aee5a7b42e10e5cb582f6d /platform/node/src/node_map.cpp | |
parent | 871152832a941d7acfea0f37e45d69dd9bb60abb (diff) | |
download | qtlocation-mapboxgl-43cf669c6b87dd6747e4e61d0cad53382e497be2.tar.gz |
[node] drop NodeRequest::Create, move MakeCallback to NodeRequest::Execute
Diffstat (limited to 'platform/node/src/node_map.cpp')
-rw-r--r-- | platform/node/src/node_map.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 3c44155401..eb2ad64700 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -737,20 +737,21 @@ NodeMap::~NodeMap() { if (map) release(); } -std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resource, Callback callback_) { - Nan::HandleScope handleScope; +std::unique_ptr<mbgl::AsyncRequest> NodeMap::request(const mbgl::Resource& resource, mbgl::FileSource::Callback callback_) { + Nan::HandleScope scope; + + v8::Local<v8::Value> argv[] = { + Nan::New<v8::External>(this), + Nan::New<v8::External>(&callback_) + }; - // 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 instance = Nan::New(NodeRequest::constructor)->NewInstance(2, argv); - auto requestHandle = NodeRequest::Create(resource, callback_)->ToObject(); - auto request = Nan::ObjectWrap::Unwrap<NodeRequest>(requestHandle); - auto callbackHandle = Nan::New<v8::Function>(NodeRequest::Respond, requestHandle); + 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)); - v8::Local<v8::Value> argv[] = { requestHandle, callbackHandle }; - Nan::MakeCallback(handle()->GetInternalField(1)->ToObject(), "request", 2, argv); + auto request = Nan::ObjectWrap::Unwrap<NodeRequest>(instance); + request->Execute(); return std::make_unique<NodeRequest::NodeAsyncRequest>(request); } |