diff --git a/App/lib/core/Gen/Class/ClassGenVTable.vp b/App/lib/core/Gen/Class/ClassGenVTable.vp index 06a5a60..755e946 100644 --- a/App/lib/core/Gen/Class/ClassGenVTable.vp +++ b/App/lib/core/Gen/Class/ClassGenVTable.vp @@ -400,7 +400,7 @@ class ClassGenVTable(ClassGenBase.ClassGenBase): func: llvmlite.Function | t.CPtr = self.Gen.CallGenLeafKit.find_func_global(full_name) else: # 当前类方法: 用当前模块 SHA1 - mangled_name: str = self._mangle_name(trans, full_name) + mangled_name: str = self.Gen.FuncGenBase._mangle_name(trans, full_name) func: llvmlite.Function | t.CPtr = self.Gen.CallGenLeafKit.find_func_in_table( trans._funcs, trans._func_count, full_name) # 当前模块表找不到时,回退到全局表 @@ -469,7 +469,7 @@ class ClassGenVTable(ClassGenBase.ClassGenBase): if vtable_name_buf is None: return 0 viperlib.snprintf(vtable_name_buf, 128, "%s.vtable", class_name) - vtable_mangled: str = self._mangle_name(trans, vtable_name_buf) + vtable_mangled: str = self.Gen.FuncGenBase._mangle_name(trans, vtable_name_buf) # 5. 创建全局变量 gv: llvmlite.GlobalVariable | t.CPtr = llvmlite.new_global_variable( @@ -710,7 +710,7 @@ class ClassGenVTable(ClassGenBase.ClassGenBase): full_name: str = full_name_buf # SHA1 命名空间混淆 - mangled_name: str = self._mangle_name(trans, full_name) + mangled_name: str = self.Gen.FuncGenBase._mangle_name(trans, full_name) # 推断返回类型 ret_ty: llvmlite.LLVMType | t.CPtr = None @@ -1152,7 +1152,7 @@ class ClassGenVTable(ClassGenBase.ClassGenBase): viperlib.snprintf(full_name_buf, 128, "%s.__before_init__", class_name) full_name: str = full_name_buf - mangled_name: str = self._mangle_name(trans, full_name) + mangled_name: str = self.Gen.FuncGenBase._mangle_name(trans, full_name) # 创建函数 func: llvmlite.Function | t.CPtr = llvmlite.create_function( @@ -1229,7 +1229,7 @@ class ClassGenVTable(ClassGenBase.ClassGenBase): if vt_name_buf is not None: viperlib.snprintf(vt_name_buf, 128, "%s.vtable", class_name) vt_full_name: str = vt_name_buf - vt_mangled: str = self._mangle_name(trans, vt_full_name) + vt_mangled: str = self.Gen.FuncGenBase._mangle_name(trans, vt_full_name) # GEP 到 __vtable__ 字段(索引 0) vt_slot: llvmlite.Value | t.CPtr = llvmlite.build_gep_struct(