diff options
author | Trevor Norris <trev.norris@gmail.com> | 2015-06-02 10:18:01 -0600 |
---|---|---|
committer | Rod Vagg <rod@vagg.org> | 2015-08-04 11:56:11 -0700 |
commit | 571ec13841699d255025b8eaeab17c84fdb4add3 (patch) | |
tree | e79efed4a64ffa0e099442ca73adb3694aee921d | |
parent | d75f5c8d0ecdf400933b601ed07b064dbfe27bf6 (diff) | |
download | android-node-v8-571ec13841699d255025b8eaeab17c84fdb4add3.tar.gz android-node-v8-571ec13841699d255025b8eaeab17c84fdb4add3.tar.bz2 android-node-v8-571ec13841699d255025b8eaeab17c84fdb4add3.zip |
buffer: switch to using Maybe<T> API
Use the new Maybe<T> syntax for v8::Object::SetPrototype().
PR-URL: https://github.com/nodejs/io.js/pull/1825
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
-rw-r--r-- | src/node_buffer.cc | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 57268e749d..765f642d10 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -73,6 +73,7 @@ using v8::Handle; using v8::HandleScope; using v8::Isolate; using v8::Local; +using v8::Maybe; using v8::Number; using v8::Object; using v8::Persistent; @@ -298,7 +299,13 @@ Local<Object> New(Environment* env, size_t length) { length, ArrayBufferCreationMode::kInternalized); Local<Uint8Array> ui = Uint8Array::New(ab, 0, length); - ui->SetPrototype(env->buffer_prototype_object()); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (!mb.FromMaybe(false)) { + FatalError("node::Buffer::New(Environment*, size_t)", + "Could not set Object prototype"); + UNREACHABLE(); + } return scope.Escape(ui); } @@ -361,7 +368,13 @@ Local<Object> New(Environment* env, const char* data, size_t length) { length, ArrayBufferCreationMode::kInternalized); Local<Uint8Array> ui = Uint8Array::New(ab, 0, length); - ui->SetPrototype(env->buffer_prototype_object()); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (!mb.FromMaybe(false)) { + FatalError("node::Buffer::New(Environment*, char*, size_t)", + "Could not set Object prototype"); + UNREACHABLE(); + } return scope.Escape(ui); } @@ -401,7 +414,14 @@ Local<Object> New(Environment* env, Local<ArrayBuffer> ab = ArrayBuffer::New(env->isolate(), data, length); Local<Uint8Array> ui = Uint8Array::New(ab, 0, length); - ui->SetPrototype(env->buffer_prototype_object()); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (!mb.FromMaybe(false)) { + FatalError("node::Buffer::New(Environment*, char*, size_t," + " FreeCallback, void*)", + "Could not set Object prototype"); + UNREACHABLE(); + } CallbackInfo::New(env->isolate(), ui, callback, hint); return scope.Escape(ui); } @@ -441,7 +461,13 @@ Local<Object> Use(Environment* env, char* data, size_t length) { length, ArrayBufferCreationMode::kInternalized); Local<Uint8Array> ui = Uint8Array::New(ab, 0, length); - ui->SetPrototype(env->buffer_prototype_object()); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (!mb.FromMaybe(false)) { + FatalError("node::Buffer::Use(Environment*, char*, size_t)", + "Could not set Object prototype"); + UNREACHABLE(); + } return scope.Escape(ui); } @@ -473,8 +499,10 @@ void Create(const FunctionCallbackInfo<Value>& args) { length, ArrayBufferCreationMode::kInternalized); Local<Uint8Array> ui = Uint8Array::New(ab, 0, length); - ui->SetPrototype(env->buffer_prototype_object()); - args.GetReturnValue().Set(ui); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (mb.FromMaybe(false)) + args.GetReturnValue().Set(ui); } @@ -505,8 +533,10 @@ void Slice(const FunctionCallbackInfo<Value>& args) { size_t size = end - start; CHECK_GE(ab_c.ByteLength(), start + size); Local<Uint8Array> ui = Uint8Array::New(ab, start, size); - ui->SetPrototype(env->buffer_prototype_object()); - args.GetReturnValue().Set(ui); + Maybe<bool> mb = + ui->SetPrototype(env->context(), env->buffer_prototype_object()); + if (mb.FromMaybe(false)) + args.GetReturnValue().Set(ui); } |