summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/3rdparty/v8/src/api.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/3rdparty/v8/src/api.cc b/src/3rdparty/v8/src/api.cc
index cbb3a04..baa5b0a 100644
--- a/src/3rdparty/v8/src/api.cc
+++ b/src/3rdparty/v8/src/api.cc
@@ -4421,11 +4421,13 @@ void v8::Object::SetPointerInInternalField(int index, void* value) {
void v8::Object::SetExternalResource(v8::Object::ExternalResource *resource) {
i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
ENTER_V8(isolate);
+ HandleScope scope;
i::Handle<i::JSObject> obj = Utils::OpenHandle(this);
if (CanBeEncodedAsSmi(resource)) {
obj->SetExternalResourceObject(EncodeAsSmi(resource));
} else {
- obj->SetExternalResourceObject(*isolate->factory()->NewForeign(static_cast<i::Address>((void *)resource)));
+ i::Handle<i::Foreign> foreign = isolate->factory()->NewForeign(static_cast<i::Address>((void *)resource));
+ obj->SetExternalResourceObject(*foreign);
}
if (!obj->IsSymbol()) {
isolate->heap()->external_string_table()->AddObject(*obj);