HipcGenerator: make generated methods use stackalloc for isBufferMapAlias bool array

This commit is contained in:
Jim Horvath 2024-02-22 22:33:17 -05:00
parent dc86921c21
commit 8b9098262a
2 changed files with 3 additions and 3 deletions

View file

@ -233,7 +233,7 @@ namespace Ryujinx.Horizon.Generators.Hipc
if (buffersCount != 0)
{
generator.AppendLine($"bool[] {IsBufferMapAliasVariableName} = new bool[{method.ParameterList.Parameters.Count}];");
generator.AppendLine($"Span<bool> {IsBufferMapAliasVariableName} = stackalloc bool[{method.ParameterList.Parameters.Count}];");
generator.AppendLine();
generator.AppendLine($"{ResultVariableName} = processor.ProcessBuffers(ref context, {IsBufferMapAliasVariableName}, runtimeMetadata);");

View file

@ -127,7 +127,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
return _bufferRanges[argIndex];
}
public Result ProcessBuffers(ref ServiceDispatchContext context, bool[] isBufferMapAlias, ServerMessageRuntimeMetadata runtimeMetadata)
public Result ProcessBuffers(ref ServiceDispatchContext context, scoped Span<bool> isBufferMapAlias, ServerMessageRuntimeMetadata runtimeMetadata)
{
bool mapAliasBuffersValid = true;
@ -246,7 +246,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
return mode == HipcBufferMode.Normal;
}
public void SetOutBuffers(HipcMessageData response, bool[] isBufferMapAlias)
public void SetOutBuffers(HipcMessageData response, ReadOnlySpan<bool> isBufferMapAlias)
{
int recvPointerIndex = 0;