Fix internal function name collision with base class function in bindings

This commit is contained in:
2026-04-20 14:57:33 +02:00
parent 3cea8621a7
commit fc864cb504
@@ -97,11 +97,22 @@ namespace Flax.Build.Bindings
UniqueFunctionNames = new HashSet<string>();
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);