From fc864cb504e1a6cd6e206bf02bbcdb3f357d1636 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 20 Apr 2026 14:57:33 +0200 Subject: [PATCH] Fix internal function name collision with base class function in bindings --- Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs b/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs index 727483988..891c79b43 100644 --- a/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs +++ b/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs @@ -97,11 +97,22 @@ namespace Flax.Build.Bindings UniqueFunctionNames = new HashSet(); int idx = 1; functionInfo.UniqueName = functionInfo.Name; - while (UniqueFunctionNames.Contains(functionInfo.UniqueName)) + while (!IsUniqueFunctionName(this, functionInfo.UniqueName)) functionInfo.UniqueName = functionInfo.Name + idx++; UniqueFunctionNames.Add(functionInfo.UniqueName); } + private static bool IsUniqueFunctionName(VirtualClassInfo type, string name) + { + while (type != null) + { + while (type.UniqueFunctionNames.Contains(name)) + return false; + type = type.BaseType as VirtualClassInfo; + } + return true; + } + public abstract int GetScriptVTableSize(out int offset); public abstract int GetScriptVTableOffset(VirtualClassInfo classInfo);