summaryrefslogtreecommitdiff
path: root/src/node_wrap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_wrap.h')
-rw-r--r--src/node_wrap.h45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/node_wrap.h b/src/node_wrap.h
index 8839a7a50b..0f56f6ddf7 100644
--- a/src/node_wrap.h
+++ b/src/node_wrap.h
@@ -22,38 +22,39 @@
#ifndef SRC_NODE_WRAP_H_
#define SRC_NODE_WRAP_H_
-#include "v8.h"
-#include "uv.h"
-
+#include "env.h"
+#include "env-inl.h"
#include "pipe_wrap.h"
-#include "tty_wrap.h"
#include "tcp_wrap.h"
+#include "tty_wrap.h"
#include "udp_wrap.h"
+#include "uv.h"
+#include "v8.h"
namespace node {
-extern v8::Persistent<v8::FunctionTemplate> pipeConstructorTmpl;
-extern v8::Persistent<v8::FunctionTemplate> ttyConstructorTmpl;
-extern v8::Persistent<v8::FunctionTemplate> tcpConstructorTmpl;
-
-#define WITH_GENERIC_STREAM(obj, BODY) \
- do { \
- if (HasInstance(tcpConstructorTmpl, obj)) { \
- TCPWrap* const wrap = TCPWrap::Unwrap(obj); \
- BODY \
- } else if (HasInstance(ttyConstructorTmpl, obj)) { \
- TTYWrap* const wrap = TTYWrap::Unwrap(obj); \
- BODY \
- } else if (HasInstance(pipeConstructorTmpl, obj)) { \
- PipeWrap* const wrap = PipeWrap::Unwrap(obj); \
- BODY \
- } \
+#define WITH_GENERIC_STREAM(env, obj, BODY) \
+ do { \
+ if (env->tcp_constructor_template().IsEmpty() == false && \
+ env->tcp_constructor_template()->HasInstance(obj)) { \
+ TCPWrap* const wrap = TCPWrap::Unwrap(obj); \
+ BODY \
+ } else if (env->tty_constructor_template().IsEmpty() == false && \
+ env->tty_constructor_template()->HasInstance(obj)) { \
+ TTYWrap* const wrap = TTYWrap::Unwrap(obj); \
+ BODY \
+ } else if (env->pipe_constructor_template().IsEmpty() == false && \
+ env->pipe_constructor_template()->HasInstance(obj)) { \
+ PipeWrap* const wrap = PipeWrap::Unwrap(obj); \
+ BODY \
+ } \
} while (0)
-inline uv_stream_t* HandleToStream(v8::Local<v8::Object> obj) {
+inline uv_stream_t* HandleToStream(Environment* env,
+ v8::Local<v8::Object> obj) {
v8::HandleScope scope(node_isolate);
- WITH_GENERIC_STREAM(obj, {
+ WITH_GENERIC_STREAM(env, obj, {
return reinterpret_cast<uv_stream_t*>(wrap->UVHandle());
});