Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Gu <timothygu99@gmail.com>2017-04-04 03:35:17 +0300
committerTimothy Gu <timothygu99@gmail.com>2017-04-12 20:02:59 +0300
commitfaa447b256f61d46b4b4963d6bf3e77ccf229e97 (patch)
tree11b72c2f99d7f071cc342b80bb59eeaef0c34316 /src/node_buffer.cc
parentec53921d2e96b4fd7672f69187f6b45b0ab96310 (diff)
src: allow ArrayBufferView as instance of Buffer
PR-URL: https://github.com/nodejs/node/pull/12223 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'src/node_buffer.cc')
-rw-r--r--src/node_buffer.cc23
1 files changed, 12 insertions, 11 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();