mirror of https://github.com/nodejs/node.git
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.pull/5010/head
parent
e5791f74f0
commit
d4cc30f18c
|
@ -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() {
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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…
Reference in New Issue