diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/node_buffer.cc | 23 | ||||
-rw-r--r-- | src/util.h | 4 |
2 files changed, 14 insertions, 13 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc index d8879094fa9..50760df8a38 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -70,6 +70,7 @@ namespace Buffer { using v8::ArrayBuffer; using v8::ArrayBufferCreationMode; +using v8::ArrayBufferView; using v8::Context; using v8::EscapableHandleScope; using v8::FunctionCallbackInfo; @@ -195,41 +196,41 @@ inline MUST_USE_RESULT bool ParseArrayIndex(Local<Value> arg, // Buffer methods bool HasInstance(Local<Value> val) { - return val->IsUint8Array(); + return val->IsArrayBufferView(); } bool HasInstance(Local<Object> obj) { - return obj->IsUint8Array(); + return obj->IsArrayBufferView(); } char* Data(Local<Value> val) { - CHECK(val->IsUint8Array()); - Local<Uint8Array> ui = val.As<Uint8Array>(); + CHECK(val->IsArrayBufferView()); + Local<ArrayBufferView> ui = val.As<ArrayBufferView>(); ArrayBuffer::Contents ab_c = ui->Buffer()->GetContents(); return static_cast<char*>(ab_c.Data()) + ui->ByteOffset(); } char* Data(Local<Object> obj) { - CHECK(obj->IsUint8Array()); - Local<Uint8Array> ui = obj.As<Uint8Array>(); + CHECK(obj->IsArrayBufferView()); + Local<ArrayBufferView> ui = obj.As<ArrayBufferView>(); ArrayBuffer::Contents ab_c = ui->Buffer()->GetContents(); return static_cast<char*>(ab_c.Data()) + ui->ByteOffset(); } size_t Length(Local<Value> val) { - CHECK(val->IsUint8Array()); - Local<Uint8Array> ui = val.As<Uint8Array>(); + CHECK(val->IsArrayBufferView()); + Local<ArrayBufferView> ui = val.As<ArrayBufferView>(); return ui->ByteLength(); } size_t Length(Local<Object> obj) { - CHECK(obj->IsUint8Array()); - Local<Uint8Array> ui = obj.As<Uint8Array>(); + CHECK(obj->IsArrayBufferView()); + Local<ArrayBufferView> ui = obj.As<ArrayBufferView>(); return ui->ByteLength(); } @@ -800,7 +801,7 @@ void WriteFloatGeneric(const FunctionCallbackInfo<Value>& args) { THROW_AND_RETURN_UNLESS_BUFFER(env, args[0]); } - Local<Uint8Array> ts_obj = args[0].As<Uint8Array>(); + Local<ArrayBufferView> ts_obj = args[0].As<ArrayBufferView>(); ArrayBuffer::Contents ts_obj_c = ts_obj->Buffer()->GetContents(); const size_t ts_obj_offset = ts_obj->ByteOffset(); const size_t ts_obj_length = ts_obj->ByteLength(); diff --git a/src/util.h b/src/util.h index f43ccef8b84..c924209a3c8 100644 --- a/src/util.h +++ b/src/util.h @@ -439,8 +439,8 @@ class BufferValue : public MaybeStackBuffer<char> { } while (0) #define SPREAD_BUFFER_ARG(val, name) \ - CHECK((val)->IsUint8Array()); \ - v8::Local<v8::Uint8Array> name = (val).As<v8::Uint8Array>(); \ + CHECK((val)->IsArrayBufferView()); \ + v8::Local<v8::ArrayBufferView> name = (val).As<v8::ArrayBufferView>(); \ v8::ArrayBuffer::Contents name##_c = name->Buffer()->GetContents(); \ const size_t name##_offset = name->ByteOffset(); \ const size_t name##_length = name->ByteLength(); \ |