Skip to content

Commit 960cc00

Browse files
authored
Replace uses of deprecated v8::External APIs (#240)
1 parent e53d9bf commit 960cc00

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

src/crypto/crypto_context.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2314,7 +2314,8 @@ int SecureContext::TicketCompatibilityCallback(SSL* ssl,
23142314
void SecureContext::CtxGetter(const FunctionCallbackInfo<Value>& info) {
23152315
SecureContext* sc;
23162316
ASSIGN_OR_RETURN_UNWRAP(&sc, info.This());
2317-
Local<External> ext = External::New(info.GetIsolate(), sc->ctx_.get());
2317+
Local<External> ext = External::New(info.GetIsolate(), sc->ctx_.get(),
2318+
v8::kExternalPointerTypeTagDefault);
23182319
info.GetReturnValue().Set(ext);
23192320
}
23202321

src/js_native_api_v8.cc

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,8 @@ inline napi_status Unwrap(napi_env env,
356356
.ToLocalChecked();
357357
RETURN_STATUS_IF_FALSE(env, val->IsExternal(), napi_invalid_arg);
358358
Reference* reference =
359-
static_cast<v8impl::Reference*>(val.As<v8::External>()->Value());
359+
static_cast<v8impl::Reference*>(val.As<v8::External>()->Value(
360+
v8::kExternalPointerTypeTagDefault));
360361

361362
if (result) {
362363
*result = reference->Data();
@@ -396,14 +397,16 @@ class CallbackBundle {
396397
bundle->cb_data = data;
397398
bundle->env = env;
398399

399-
v8::Local<v8::Value> cbdata = v8::External::New(env->isolate, bundle);
400+
v8::Local<v8::Value> cbdata = v8::External::New(env->isolate, bundle,
401+
v8::kExternalPointerTypeTagDefault);
400402
ReferenceWithFinalizer::New(
401403
env, cbdata, 0, ReferenceOwnership::kRuntime, Delete, bundle, nullptr);
402404
return cbdata;
403405
}
404406

405407
static CallbackBundle* FromCallbackData(v8::Local<v8::Value> data) {
406-
return reinterpret_cast<CallbackBundle*>(data.As<v8::External>()->Value());
408+
return reinterpret_cast<CallbackBundle*>(data.As<v8::External>()->Value(
409+
v8::kExternalPointerTypeTagDefault));
407410
}
408411

409412
public:
@@ -576,7 +579,8 @@ inline napi_status Wrap(napi_env env,
576579

577580
CHECK(obj->SetPrivate(context,
578581
NAPI_PRIVATE_KEY(context, wrapper),
579-
v8::External::New(env->isolate, reference))
582+
v8::External::New(env->isolate, reference,
583+
v8::kExternalPointerTypeTagDefault))
580584
.FromJust());
581585

582586
return GET_RETURN_STATUS(env);
@@ -843,7 +847,8 @@ class ExternalWrapper {
843847
public:
844848
static v8::Local<v8::External> New(napi_env env, void* data) {
845849
ExternalWrapper* wrapper = new ExternalWrapper(data);
846-
v8::Local<v8::External> external = v8::External::New(env->isolate, wrapper);
850+
v8::Local<v8::External> external = v8::External::New(env->isolate, wrapper,
851+
v8::kExternalPointerTypeTagDefault);
847852
wrapper->persistent_.Reset(env->isolate, external);
848853
wrapper->persistent_.SetWeak(
849854
wrapper, WeakCallback, v8::WeakCallbackType::kParameter);
@@ -852,7 +857,8 @@ class ExternalWrapper {
852857
}
853858

854859
static ExternalWrapper* From(v8::Local<v8::External> external) {
855-
return static_cast<ExternalWrapper*>(external->Value());
860+
return static_cast<ExternalWrapper*>(external->Value(
861+
v8::kExternalPointerTypeTagDefault));
856862
}
857863

858864
void* Data() { return data_; }

src/node_modules.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,8 @@ void GetCompileCacheEntry(const FunctionCallbackInfo<Value>& args) {
516516
v8::LocalVector<v8::Name> names(isolate,
517517
{FIXED_ONE_BYTE_STRING(isolate, "external")});
518518
v8::LocalVector<v8::Value> values(isolate,
519-
{v8::External::New(isolate, cache_entry)});
519+
{v8::External::New(isolate, cache_entry,
520+
v8::kExternalPointerTypeTagDefault)});
520521
if (cache_entry->cache != nullptr) {
521522
Debug(env,
522523
DebugCategory::COMPILE_CACHE,
@@ -556,7 +557,8 @@ void SaveCompileCacheEntry(const FunctionCallbackInfo<Value>& args) {
556557
CHECK(args[0]->IsExternal());
557558
CHECK(args[1]->IsString()); // TODO(joyeecheung): accept buffer.
558559
auto* cache_entry =
559-
static_cast<CompileCacheEntry*>(args[0].As<External>()->Value());
560+
static_cast<CompileCacheEntry*>(args[0].As<External>()->Value(
561+
v8::kExternalPointerTypeTagDefault));
560562
Utf8Value utf8(isolate, args[1].As<String>());
561563
env->compile_cache_handler()->MaybeSave(cache_entry, utf8.ToStringView());
562564
}

src/node_util.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ static void GetExternalValue(
9393
Isolate* isolate = args.GetIsolate();
9494
Local<External> external = args[0].As<External>();
9595

96-
void* ptr = external->Value();
96+
void* ptr = external->Value(v8::kExternalPointerTypeTagDefault);
9797
uint64_t value = reinterpret_cast<uint64_t>(ptr);
9898
Local<BigInt> ret = BigInt::NewFromUnsigned(isolate, value);
9999
args.GetReturnValue().Set(ret);

src/stream_base.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,8 @@ void StreamBase::GetExternal(const FunctionCallbackInfo<Value>& args) {
653653
StreamBase* wrap = StreamBase::FromObject(args.This().As<Object>());
654654
if (wrap == nullptr) return;
655655

656-
Local<External> ext = External::New(args.GetIsolate(), wrap);
656+
Local<External> ext = External::New(args.GetIsolate(), wrap,
657+
v8::kExternalPointerTypeTagDefault);
657658
args.GetReturnValue().Set(ext);
658659
}
659660

test/cctest/test_environment.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -704,10 +704,12 @@ TEST_F(EnvironmentTest, NestedMicrotaskQueue) {
704704
context,
705705
[](const v8::FunctionCallbackInfo<v8::Value>& info) {
706706
IntVec* callback_calls = static_cast<IntVec*>(
707-
info.Data().As<v8::External>()->Value());
707+
info.Data().As<v8::External>()->Value(
708+
v8::kExternalPointerTypeTagDefault));
708709
callback_calls->push_back(info[0].As<v8::Int32>()->Value());
709710
},
710-
v8::External::New(isolate_, static_cast<void*>(&callback_calls)))
711+
v8::External::New(isolate_, static_cast<void*>(&callback_calls),
712+
v8::kExternalPointerTypeTagDefault))
711713
.ToLocalChecked();
712714
context->Global()->Set(
713715
context,

0 commit comments

Comments
 (0)