diff --git a/shared/V8ResourceImpl.cpp b/shared/V8ResourceImpl.cpp index 7136a70e..e5fb5732 100644 --- a/shared/V8ResourceImpl.cpp +++ b/shared/V8ResourceImpl.cpp @@ -539,6 +539,7 @@ v8::Local V8ResourceImpl::GetOrCreateResourceObject(alt::IResource* // Create instance v8::Local obj = v8Resource.CreateInstance(GetContext()); V8Helpers::SetObjectClass(isolate, obj, V8Class::ObjectClass::RESOURCE); + Log::Info << "Create resource " << (void*)resource << Log::Endl; obj->SetInternalField(static_cast(V8Class::InternalFields::RESOURCE), v8::External::New(isolate, resource)); resourceObjects.insert({ resource, V8Helpers::CPersistent(isolate, obj) }); return obj; diff --git a/shared/helpers/Macros.h b/shared/helpers/Macros.h index f21cac6f..44af24ad 100644 --- a/shared/helpers/Macros.h +++ b/shared/helpers/Macros.h @@ -51,19 +51,19 @@ // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_OBJECT(idx, val) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = info.This()->GetInternalField((idx)-1)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked(); + auto val = info.This()->GetInternalField(idx)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked(); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_V8ENTITY(idx, val) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = V8Entity::Get(info.This()->GetInternalField((idx)-1)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked()); + auto val = V8Entity::Get(info.This()->GetInternalField(idx)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked()); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_ENTITY(idx, val, type) \ type* val; \ { \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - V8Entity* __val = V8Entity::Get(info.This()->GetInternalField((idx)-1)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked()); \ + V8Entity* __val = V8Entity::Get(info.This()->GetInternalField(idx)->ToObject(isolate->GetEnteredOrMicrotaskContext()).ToLocalChecked()); \ V8_CHECK(__val, "baseobject is invalid"); \ val = dynamic_cast(__val->GetHandle()); \ V8_CHECK(val, "baseobject is not of type " #type); \ @@ -72,27 +72,27 @@ // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_INTEGER(idx, val) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = info.This()->GetInternalField((idx)-1)->IntegerValue(ctx).ToChecked(); + auto val = info.This()->GetInternalField(idx)->IntegerValue(ctx).ToChecked(); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_UINT32(idx, val) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = info.This()->GetInternalField((idx)-1)->Uint32Value(ctx).ToChecked(); + auto val = info.This()->GetInternalField(idx)->Uint32Value(ctx).ToChecked(); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_EXTERNAL(idx, val, type) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = static_cast(info.This()->GetInternalField((idx)-1).As()->Value()); + auto val = static_cast(info.This()->GetInternalField(idx).As()->Value()); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_PTR(idx, val, type) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto val = static_cast(info.This()->GetAlignedPointerFromInternalField((idx)-1)); + auto val = static_cast(info.This()->GetAlignedPointerFromInternalField(idx)); // idx starts with 1 #define V8_GET_THIS_INTERNAL_FIELD_STRING(idx, val) \ V8_CHECK(info.This()->InternalFieldCount() > idx - 1, "Invalid internal field count (is the 'this' context correct?)"); \ - auto intVal = info.This()->GetInternalField(0).As(); \ + auto intVal = info.This()->GetInternalField(idx).As(); \ auto val = *v8::String::Utf8Value(isolate, intVal); #define V8_CHECK_CONSTRUCTOR() V8_CHECK(info.IsConstructCall(), "function can't be called without new")