Browse Source

src: use PersistentToLocal() in a few more places

Update a few more `Local<T>::New(isolate, persistent)` call sites to
`PersistentToLocal(isolate, persistent)` - the latter has a fast path
for non-weak persistent references.
v0.11.5-release
Ben Noordhuis 12 years ago
parent
commit
d4cc30f18c
  1. 2
      src/handle_wrap.h
  2. 3
      src/node_crypto.cc
  3. 4
      src/node_script.cc
  4. 3
      src/req_wrap.h
  5. 7
      src/tls_wrap.h

2
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() {

3
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];

4
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) {

3
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() {

7
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() {

Loading…
Cancel
Save