diff options
Diffstat (limited to 'libdeno/binding.cc')
-rw-r--r-- | libdeno/binding.cc | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/libdeno/binding.cc b/libdeno/binding.cc index c1fd0df73..3a3f171e6 100644 --- a/libdeno/binding.cc +++ b/libdeno/binding.cc @@ -21,20 +21,15 @@ Deno* FromIsolate(v8::Isolate* isolate) { } void AddDataRef(Deno* d, int32_t req_id, v8::Local<v8::Value> data_v) { - // TODO Use std::unique_ptr - auto pair = - std::make_pair(req_id, new v8::Persistent<v8::Value>(d->isolate, data_v)); - d->async_data_map.insert(pair); + d->async_data_map.emplace(std::piecewise_construct, std::make_tuple(req_id), + std::make_tuple(d->isolate, data_v)); } void DeleteDataRef(Deno* d, int32_t req_id) { // Delete persistent reference to data ArrayBuffer. auto it = d->async_data_map.find(req_id); if (it != d->async_data_map.end()) { - auto pair = *it; - auto p = pair.second; - p->Reset(); - delete p; + it->second.Reset(); d->async_data_map.erase(it); } } |