Pass converted non-const lvalue reference parameters as temporaries

This commit is contained in:
Ari Vuollet
2026-08-10 20:26:47 +03:00
parent 5b648b1824
commit 0c9431e7d7
@@ -1396,7 +1396,7 @@ namespace Flax.Build.Bindings
else if (parameterInfo.Type.IsRef && !parameterInfo.Type.IsConst)
{
// Non-const lvalue reference parameters needs to be passed via temporary value
if (parameterInfo.Type.Type is "String" or "StringView" or "StringAnsi" or "StringAnsiView" && parameterInfo.Type.GenericArgs == null)
if (!string.IsNullOrWhiteSpace(CppParamsWrappersCache[i])) // Converted values
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();