From 85404c5c558ebbba3aaf27c56d1edccc2061d664 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Mon, 18 Jul 2011 13:45:11 -0700 Subject: [PATCH] Move HandleWrap rules to one place --- src/handle_wrap.h | 20 ++++++++++++++++++++ src/pipe_wrap.cc | 21 --------------------- src/tcp_wrap.cc | 21 --------------------- src/timer_wrap.cc | 21 --------------------- 4 files changed, 20 insertions(+), 63 deletions(-) diff --git a/src/handle_wrap.h b/src/handle_wrap.h index 2c51799a5..8329da041 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -3,6 +3,26 @@ namespace node { +// Rules: +// +// - Do not throw from handle methods. Set errno. +// +// - MakeCallback may only be made directly off the event loop. +// That is there can be no JavaScript stack frames underneith it. +// (Is there anyway to assert that?) +// +// - No use of v8::WeakReferenceCallback. The close callback signifies that +// we're done with a handle - external resources can be freed. +// +// - Reusable? +// +// - The uv_close_cb is used to free the c++ object. The close callback +// is not made into javascript land. +// +// - uv_ref, uv_unref counts are managed at this layer to avoid needless +// js/c++ boundary crossing. At the javascript layer that should all be +// taken care of. + class HandleWrap { public: static void Initialize(v8::Handle target); diff --git a/src/pipe_wrap.cc b/src/pipe_wrap.cc index 4d8f35239..adbeb0f8c 100644 --- a/src/pipe_wrap.cc +++ b/src/pipe_wrap.cc @@ -4,27 +4,6 @@ #include #include -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index fd4552c97..814f7e235 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -19,27 +19,6 @@ # define uv_inet_ntop inet_ntop #endif -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ diff --git a/src/timer_wrap.cc b/src/timer_wrap.cc index 3d45946ce..5e1fd25a5 100644 --- a/src/timer_wrap.cc +++ b/src/timer_wrap.cc @@ -1,27 +1,6 @@ #include #include -// Rules: -// -// - Do not throw from handle methods. Set errno. -// -// - MakeCallback may only be made directly off the event loop. -// That is there can be no JavaScript stack frames underneith it. -// (Is there anyway to assert that?) -// -// - No use of v8::WeakReferenceCallback. The close callback signifies that -// we're done with a handle - external resources can be freed. -// -// - Reusable? -// -// - The uv_close_cb is used to free the c++ object. The close callback -// is not made into javascript land. -// -// - uv_ref, uv_unref counts are managed at this layer to avoid needless -// js/c++ boundary crossing. At the javascript layer that should all be -// taken care of. - - #define UNWRAP \ assert(!args.Holder().IsEmpty()); \ assert(args.Holder()->InternalFieldCount() > 0); \ -- 2.34.1