Fix clang bindings code generation for non-const ref parameters

This commit is contained in:
2025-12-16 00:53:03 +02:00
parent c40eefc79d
commit 63bed0986a

View File

@@ -1293,11 +1293,21 @@ namespace Flax.Build.Bindings
callParams += parameterInfo.Name;
callParams += "Temp";
}
// Instruct for more optoimized value move operation
// Instruct for more optimized value move operation
else if (parameterInfo.Type.IsMoveRef)
{
callParams += $"MoveTemp({param})";
}
else if (parameterInfo.Type.IsRef && !parameterInfo.Type.IsConst)
{
// Non-const lvalue reference parameters needs to be passed via temporary value
if (parameterInfo.IsOut || parameterInfo.IsRef)
contents.Append(indent).AppendFormat("{2}& {0}Temp = {1};", parameterInfo.Name, param, parameterInfo.Type.ToString(false)).AppendLine();
else
contents.Append(indent).AppendFormat("{2} {0}Temp = {1};", parameterInfo.Name, param, parameterInfo.Type.ToString(false)).AppendLine();
callParams += parameterInfo.Name;
callParams += "Temp";
}
else
{
callParams += param;