aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrevor Norris <trev.norris@gmail.com>2015-06-02 10:18:01 -0600
committerRod Vagg <rod@vagg.org>2015-08-04 11:56:11 -0700
commit571ec13841699d255025b8eaeab17c84fdb4add3 (patch)
treee79efed4a64ffa0e099442ca73adb3694aee921d
parentd75f5c8d0ecdf400933b601ed07b064dbfe27bf6 (diff)
downloadandroid-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.cc46
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);
}