diff options
author | Trevor Norris <trev.norris@gmail.com> | 2013-08-05 17:58:29 -0700 |
---|---|---|
committer | Trevor Norris <trev.norris@gmail.com> | 2013-08-12 11:49:53 -0700 |
commit | 756ae2c5360b7ab64649cb7587242a2fbd8dc95d (patch) | |
tree | a6152c93769e654073dc9128864677a22ec41007 /src/handle_wrap.cc | |
parent | e0a8e1bf77e561ec6894540ea2aae6a52fb1d7e0 (diff) | |
download | android-node-v8-756ae2c5360b7ab64649cb7587242a2fbd8dc95d.tar.gz android-node-v8-756ae2c5360b7ab64649cb7587242a2fbd8dc95d.tar.bz2 android-node-v8-756ae2c5360b7ab64649cb7587242a2fbd8dc95d.zip |
src: centralize class wrap/unwrap
While almost all cases were handled by simple WRAP/UNWRAP macros, this
extends those to cover all known occurrences.
Diffstat (limited to 'src/handle_wrap.cc')
-rw-r--r-- | src/handle_wrap.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/handle_wrap.cc b/src/handle_wrap.cc index ce6ac5c5bf..749be4b246 100644 --- a/src/handle_wrap.cc +++ b/src/handle_wrap.cc @@ -41,7 +41,8 @@ static Cached<String> close_sym; void HandleWrap::Ref(const FunctionCallbackInfo<Value>& args) { HandleScope scope(node_isolate); - UNWRAP_NO_ABORT(HandleWrap) + HandleWrap* wrap; + UNWRAP_NO_ABORT(args.This(), HandleWrap, wrap); if (wrap != NULL && wrap->handle__ != NULL) { uv_ref(wrap->handle__); @@ -53,7 +54,8 @@ void HandleWrap::Ref(const FunctionCallbackInfo<Value>& args) { void HandleWrap::Unref(const FunctionCallbackInfo<Value>& args) { HandleScope scope(node_isolate); - UNWRAP_NO_ABORT(HandleWrap) + HandleWrap* wrap; + UNWRAP_NO_ABORT(args.This(), HandleWrap, wrap); if (wrap != NULL && wrap->handle__ != NULL) { uv_unref(wrap->handle__); @@ -65,8 +67,8 @@ void HandleWrap::Unref(const FunctionCallbackInfo<Value>& args) { void HandleWrap::Close(const FunctionCallbackInfo<Value>& args) { HandleScope scope(node_isolate); - HandleWrap *wrap = static_cast<HandleWrap*>( - args.This()->GetAlignedPointerFromInternalField(0)); + HandleWrap* wrap; + UNWRAP(args.This(), HandleWrap, wrap); // guard against uninitialized handle or double close if (wrap == NULL || wrap->handle__ == NULL) return; @@ -92,9 +94,8 @@ HandleWrap::HandleWrap(Handle<Object> object, uv_handle_t* h) { HandleScope scope(node_isolate); assert(persistent().IsEmpty()); - assert(object->InternalFieldCount() > 0); persistent().Reset(node_isolate, object); - object->SetAlignedPointerInInternalField(0, this); + WRAP(object, this); QUEUE_INSERT_TAIL(&handle_wrap_queue, &handle_wrap_queue_); } |