diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/handle_wrap.h | 2 | ||||
-rw-r--r-- | src/node_crypto.cc | 3 | ||||
-rw-r--r-- | src/node_script.cc | 4 | ||||
-rw-r--r-- | src/req_wrap.h | 3 | ||||
-rw-r--r-- | src/tls_wrap.h | 7 |
5 files changed, 12 insertions, 7 deletions
diff --git a/src/handle_wrap.h b/src/handle_wrap.h index 6e6f3904b8..cbe7e3248b 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -69,7 +69,7 @@ class HandleWrap { virtual ~HandleWrap(); inline v8::Local<v8::Object> object() { - return v8::Local<v8::Object>::New(node_isolate, persistent()); + return PersistentToLocal(node_isolate, persistent()); } inline v8::Persistent<v8::Object>& persistent() { diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 540d9cdabc..e68d91dccb 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -3315,6 +3315,9 @@ void EIO_PBKDF2After(uv_work_t* work_req, int status) { assert(status == 0); pbkdf2_req* req = container_of(work_req, pbkdf2_req, work_req); HandleScope scope(node_isolate); + // Create a new Local that's associated with the current HandleScope. + // PersistentToLocal() returns a handle that gets zeroed when we call + // Dispose() so don't use that. Local<Object> obj = Local<Object>::New(node_isolate, req->obj); req->obj.Dispose(); Local<Value> argv[2]; diff --git a/src/node_script.cc b/src/node_script.cc index 9c6a598848..d155c51fad 100644 --- a/src/node_script.cc +++ b/src/node_script.cc @@ -174,7 +174,7 @@ Local<Object> WrappedContext::NewInstance() { Local<Context> WrappedContext::GetV8Context() { - return Local<Context>::New(node_isolate, context_); + return PersistentToLocal(node_isolate, context_); } @@ -404,7 +404,7 @@ void WrappedScript::EvalMachine(const FunctionCallbackInfo<Value>& args) { "'this' must be a result of previous new Script(code) call."); } - script = Local<Script>::New(node_isolate, n_script->script_); + script = PersistentToLocal(node_isolate, n_script->script_); } if (output_flag == returnResult) { diff --git a/src/req_wrap.h b/src/req_wrap.h index d4c1180ded..794e4f3769 100644 --- a/src/req_wrap.h +++ b/src/req_wrap.h @@ -22,6 +22,7 @@ #ifndef SRC_REQ_WRAP_H_ #define SRC_REQ_WRAP_H_ +#include "node.h" #include "queue.h" namespace node { @@ -69,7 +70,7 @@ class ReqWrap { } inline v8::Local<v8::Object> object() { - return v8::Local<v8::Object>::New(node_isolate, persistent()); + return PersistentToLocal(node_isolate, persistent()); } inline v8::Persistent<v8::Object>& persistent() { diff --git a/src/tls_wrap.h b/src/tls_wrap.h index 3e56926328..6db4b6e41b 100644 --- a/src/tls_wrap.h +++ b/src/tls_wrap.h @@ -22,9 +22,10 @@ #ifndef SRC_TLS_WRAP_H_ #define SRC_TLS_WRAP_H_ -#include "v8.h" -#include "stream_wrap.h" +#include "node.h" #include "queue.h" +#include "stream_wrap.h" +#include "v8.h" #include <openssl/ssl.h> @@ -162,7 +163,7 @@ class TLSCallbacks : public StreamWrapCallbacks { #endif // SSL_CTRL_SET_TLSEXT_SERVERNAME_CB inline v8::Local<v8::Object> object() { - return v8::Local<v8::Object>::New(node_isolate, persistent()); + return PersistentToLocal(node_isolate, persistent()); } inline v8::Persistent<v8::Object>& persistent() { |