From f0208658f6674dee083370089170e60bed388622 Mon Sep 17 00:00:00 2001 From: johnche Date: Wed, 26 Feb 2025 15:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/CppObjectMapper.h | 4 ++-- source/CppObjectMapper.cpp | 10 +++++----- source/PapiQuickjsImpl.cpp | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/CppObjectMapper.h b/include/CppObjectMapper.h index bcb8bff..acbe643 100644 --- a/include/CppObjectMapper.h +++ b/include/CppObjectMapper.h @@ -121,7 +121,7 @@ struct CppObjectMapper JSValue CreateFunction(pesapi_callback Callback, void* Data, pesapi_function_finalize Finalize); - JSValue CreateClassByID(const void* typeId); + JSValue FindOrCreateClassByID(const void* typeId); static JSValue CreateError(JSContext* ctx, const char* message); @@ -129,7 +129,7 @@ struct CppObjectMapper void InitMethod(puerts::JSFunctionInfo* FuncInfo, JSValue Obj); void InitProperty(puerts::JSPropertyInfo* PropInfo, JSValue Obj); - JSValue CreateClass(const puerts::JSClassDefinition* ClassDefinition); + JSValue FindOrCreateClass(const puerts::JSClassDefinition* ClassDefinition); void BindAndAddToCache(const puerts::JSClassDefinition* typeInfo, const void* ptr, JSValue value, bool callFinalize); diff --git a/source/CppObjectMapper.cpp b/source/CppObjectMapper.cpp index 3e888bf..b7cb30a 100644 --- a/source/CppObjectMapper.cpp +++ b/source/CppObjectMapper.cpp @@ -152,7 +152,7 @@ JSValue CppObjectMapper::PushNativeObject(const void* TypeId, void* ObjectPtr, b { ClassDefinition = &PtrClassDef; } - JSValue ctor = CreateClass(ClassDefinition); + JSValue ctor = FindOrCreateClass(ClassDefinition); JSValue proto = JS_GetProperty(ctx, ctor, JS_ATOM_prototype); JSValue obj = JS_NewObjectProtoClass(ctx, proto, classId); JS_FreeValue(ctx, proto); @@ -224,7 +224,7 @@ void CppObjectMapper::InitProperty(puerts::JSPropertyInfo* PropInfo, JSValue Obj JS_FreeValue(ctx, setter); } -JSValue CppObjectMapper::CreateClass(const puerts::JSClassDefinition* ClassDefinition) +JSValue CppObjectMapper::FindOrCreateClass(const puerts::JSClassDefinition* ClassDefinition) { auto it = TypeIdToFunctionMap.find(ClassDefinition->TypeId); if (it == TypeIdToFunctionMap.end()) @@ -312,7 +312,7 @@ JSValue CppObjectMapper::CreateClass(const puerts::JSClassDefinition* ClassDefin { if (auto SuperDefinition = puerts::FindClassByID(ClassDefinition->SuperTypeId)) { - JSValue super_func = CreateClass(SuperDefinition); + JSValue super_func = FindOrCreateClass(SuperDefinition); JSValue parent_proto = JS_GetProperty(ctx, super_func, JS_ATOM_prototype); JS_SetPrototype(ctx, proto, parent_proto); JS_FreeValue(ctx, parent_proto); @@ -326,14 +326,14 @@ JSValue CppObjectMapper::CreateClass(const puerts::JSClassDefinition* ClassDefin return it->second; } -JSValue CppObjectMapper::CreateClassByID(const void* typeId) +JSValue CppObjectMapper::FindOrCreateClassByID(const void* typeId) { auto clsDef = puerts::LoadClassByID(typeId); if (!clsDef) { return JS_UNDEFINED; } - return CreateClass(clsDef); + return FindOrCreateClass(clsDef); } void CppObjectMapper::Initialize(JSContext* ctx_) diff --git a/source/PapiQuickjsImpl.cpp b/source/PapiQuickjsImpl.cpp index 6dacaea..bada7f0 100644 --- a/source/PapiQuickjsImpl.cpp +++ b/source/PapiQuickjsImpl.cpp @@ -196,7 +196,7 @@ pesapi_value pesapi_create_class(pesapi_env env, const void* type_id) { auto ctx = qjsContextFromPesapiEnv(env); auto ret = allocValueInCurrentScope(ctx); - *ret = pesapi::qjsimpl::CppObjectMapper::Get(ctx)->CreateClassByID(type_id); + *ret = pesapi::qjsimpl::CppObjectMapper::Get(ctx)->FindOrCreateClassByID(type_id); JS_DupValue(ctx, *ret); return pesapiValueFromQjsValue(ret); }