summaryrefslogtreecommitdiff
path: root/src/handle_wrap.cc
diff options
context:
space:
mode:
authorTrevor Norris <trev.norris@gmail.com>2013-08-05 17:58:29 -0700
committerTrevor Norris <trev.norris@gmail.com>2013-08-12 11:49:53 -0700
commit756ae2c5360b7ab64649cb7587242a2fbd8dc95d (patch)
treea6152c93769e654073dc9128864677a22ec41007 /src/handle_wrap.cc
parente0a8e1bf77e561ec6894540ea2aae6a52fb1d7e0 (diff)
downloadandroid-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.cc13
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_);
}