Fix clang bindings code generation for non-const ref parameters
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user