aboutsummaryrefslogtreecommitdiff
path: root/mojo/edk/js/drain_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/edk/js/drain_data.cc')
-rw-r--r--mojo/edk/js/drain_data.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/mojo/edk/js/drain_data.cc b/mojo/edk/js/drain_data.cc
index ca5fdf4..cfd0bb5 100644
--- a/mojo/edk/js/drain_data.cc
+++ b/mojo/edk/js/drain_data.cc
@@ -8,6 +8,7 @@
#include <stdint.h>
#include "base/bind.h"
+#include "base/memory/ptr_util.h"
#include "gin/array_buffer.h"
#include "gin/converter.h"
#include "gin/dictionary.h"
@@ -20,7 +21,9 @@ namespace edk {
namespace js {
DrainData::DrainData(v8::Isolate* isolate, mojo::Handle handle)
- : isolate_(isolate), handle_(DataPipeConsumerHandle(handle.value())) {
+ : isolate_(isolate),
+ handle_(DataPipeConsumerHandle(handle.value())),
+ handle_watcher_(FROM_HERE) {
v8::Handle<v8::Context> context(isolate_->GetCurrentContext());
runner_ = gin::PerContextData::From(context)->runner()->GetWeakPtr();
@@ -67,8 +70,7 @@ MojoResult DrainData::ReadData() {
if (result != MOJO_RESULT_OK)
return result;
const char* p = static_cast<const char*>(buffer);
- DataBuffer* data_buffer = new DataBuffer(p, p + num_bytes);
- data_buffers_.push_back(data_buffer);
+ data_buffers_.push_back(base::MakeUnique<DataBuffer>(p, p + num_bytes));
return EndReadDataRaw(handle_.get(), num_bytes);
}