diff --git a/src/node_file_source.cpp b/src/node_file_source.cpp index 935bac427..3409f03af 100644 --- a/src/node_file_source.cpp +++ b/src/node_file_source.cpp @@ -121,12 +121,9 @@ void NodeFileSource::processAdd(const mbgl::Resource& resource) { auto handle = NanObjectWrapHandle(this); auto requestHandle = NanNew(NodeRequest::Create(handle, resource)); -#if (NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION) - const v8::UniquePersistent requestPersistent(v8::Isolate::GetCurrent(), requestHandle); -#else + v8::Persistent requestPersistent; NanAssignPersistent(requestPersistent, requestHandle); -#endif pending.emplace(resource, std::move(requestPersistent)); v8::Local argv[] = { requestHandle }; @@ -143,12 +140,9 @@ void NodeFileSource::processCancel(const mbgl::Resource& resource) { } else { #if (NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION) auto requestHandle = v8::Local::New(v8::Isolate::GetCurrent(), it->second); + it->second.Reset(); #else auto requestHandle = NanNew(it->second); -#endif - - // Dispose and remove the persistent handle -#if (NODE_MODULE_VERSION <= NODE_0_10_MODULE_VERSION) NanDisposePersistent(it->second); #endif pending.erase(it); @@ -173,7 +167,9 @@ void NodeFileSource::notify(const mbgl::Resource& resource, const std::shared_pt // First, remove the request, since it might be destructed at any point now. auto it = pending.find(resource); if (it != pending.end()) { -#if (NODE_MODULE_VERSION <= NODE_0_10_MODULE_VERSION) +#if (NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION) + it->second.Reset(); +#else NanDisposePersistent(it->second); #endif pending.erase(it); diff --git a/src/node_file_source.hpp b/src/node_file_source.hpp index 5220cd235..06b1c3d32 100644 --- a/src/node_file_source.hpp +++ b/src/node_file_source.hpp @@ -49,7 +49,7 @@ private: private: #if (NODE_MODULE_VERSION > NODE_0_10_MODULE_VERSION) - std::unordered_map &, mbgl::Resource::Hash> pending; + std::unordered_map>, mbgl::Resource::Hash> pending; #else std::unordered_map, mbgl::Resource::Hash> pending; #endif