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 += parameterInfo.Name;
|
||||||
callParams += "Temp";
|
callParams += "Temp";
|
||||||
}
|
}
|
||||||
// Instruct for more optoimized value move operation
|
// Instruct for more optimized value move operation
|
||||||
else if (parameterInfo.Type.IsMoveRef)
|
else if (parameterInfo.Type.IsMoveRef)
|
||||||
{
|
{
|
||||||
callParams += $"MoveTemp({param})";
|
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
|
else
|
||||||
{
|
{
|
||||||
callParams += param;
|
callParams += param;
|
||||||
|
|||||||
Reference in New Issue
Block a user