diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/v8/src/api.cc | 4 |
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); |