Fix managed boolean array conversion to native array

This commit is contained in:
2025-12-20 01:51:37 +02:00
parent c40f7c12f2
commit 5d45b9ea1c

View File

@@ -761,6 +761,11 @@ namespace Flax.Build.Bindings
genericArgs += ", " + typeInfo.GenericArgs[1];
result = $"Array<{genericArgs}>({result})";
}
else if (arrayApiType?.Name == "bool")
{
type = "bool*";
result = "Array<bool>({0}, {1})";
}
return result;
}
@@ -1241,8 +1246,12 @@ namespace Flax.Build.Bindings
callParams += ", ";
separator = true;
var name = parameterInfo.Name;
var countParamName = $"__{parameterInfo.Name}Count";
if (CppParamsThatNeedConversion[i] && (!FindApiTypeInfo(buildData, parameterInfo.Type, caller)?.IsStruct ?? false))
{
name = '*' + name;
countParamName = '*' + countParamName;
}
string param = string.Empty;
if (string.IsNullOrWhiteSpace(CppParamsWrappersCache[i]))
@@ -1255,7 +1264,7 @@ namespace Flax.Build.Bindings
else
{
// Convert value
param += string.Format(CppParamsWrappersCache[i], name);
param += string.Format(CppParamsWrappersCache[i], name, countParamName);
}
// Special case for output result parameters that needs additional converting from native to managed format (such as non-POD structures or output array parameter)