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
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) 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();
generator.AppendLine($"{ResultVariableName} = processor.ProcessBuffers(ref context, {IsBufferMapAliasVariableName}, runtimeMetadata);"); generator.AppendLine($"{ResultVariableName} = processor.ProcessBuffers(ref context, {IsBufferMapAliasVariableName}, runtimeMetadata);");

View file

@ -127,7 +127,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
return _bufferRanges[argIndex]; 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; bool mapAliasBuffersValid = true;
@ -246,7 +246,7 @@ namespace Ryujinx.Horizon.Sdk.Sf
return mode == HipcBufferMode.Normal; return mode == HipcBufferMode.Normal;
} }
public void SetOutBuffers(HipcMessageData response, bool[] isBufferMapAlias) public void SetOutBuffers(HipcMessageData response, ReadOnlySpan<bool> isBufferMapAlias)
{ {
int recvPointerIndex = 0; int recvPointerIndex = 0;