aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMary <mary@mary.zone>2023-05-08 01:50:07 +0200
committerGitHub <noreply@github.com>2023-05-08 01:50:07 +0200
commit0e06aace458109f70dc5f36535f77117465ea707 (patch)
tree82ee3e3c53c8e31f77aad84b5c9b8d0ecf1a1504 /src
parentadf4ebcd60d00f5ef43d2168c3ba9893ff2c1153 (diff)
misc: Avoid copy of ApplicationControlProperty (#4849)1.1.768
Avoid more giant copy when passing it around.
Diffstat (limited to 'src')
-rw-r--r--src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs2
-rw-r--r--src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs2
-rw-r--r--src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs4
-rw-r--r--src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs25
4 files changed, 17 insertions, 16 deletions
diff --git a/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs b/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs
index 58759ddb..782ccef3 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/Extensions/FileSystemExtensions.cs
@@ -116,7 +116,7 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
device,
device.System.KernelContext,
metaLoader,
- nacpData.Value,
+ nacpData,
enablePtc,
allowCodeMemoryForJit,
programName,
diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
index 785db0e5..0eedc213 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
@@ -209,7 +209,7 @@ namespace Ryujinx.HLE.Loaders.Processes
ProcessResult processResult = ProcessLoaderHelper.LoadNsos(_device,
_device.System.KernelContext,
dummyExeFs.GetNpdm(),
- nacpData.Value,
+ nacpData,
diskCacheEnabled: false,
allowCodeMemoryForJit: true,
programName,
diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs
index b802a642..d1c60f16 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoaderHelper.cs
@@ -219,7 +219,7 @@ namespace Ryujinx.HLE.Loaders.Processes
Switch device,
KernelContext context,
MetaLoader metaLoader,
- ApplicationControlProperty applicationControlProperties,
+ BlitStruct<ApplicationControlProperty> applicationControlProperties,
bool diskCacheEnabled,
bool allowCodeMemoryForJit,
string name,
@@ -355,7 +355,7 @@ namespace Ryujinx.HLE.Loaders.Processes
context.Device.System.TickSource,
context.Device.Gpu,
$"{programId:x16}",
- applicationControlProperties.DisplayVersionString.ToString(),
+ applicationControlProperties.Value.DisplayVersionString.ToString(),
diskCacheEnabled,
codeStart,
codeSize);
diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
index cf8168f7..81e75e27 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
@@ -1,4 +1,5 @@
-using LibHac.Loader;
+using LibHac.Common;
+using LibHac.Loader;
using LibHac.Ns;
using Ryujinx.Common.Logging;
using Ryujinx.Cpu;
@@ -11,7 +12,7 @@ namespace Ryujinx.HLE.Loaders.Processes
{
public class ProcessResult
{
- public static ProcessResult Failed => new(null, new ApplicationControlProperty(), false, false, null, 0, 0, 0, TitleLanguage.AmericanEnglish);
+ public static ProcessResult Failed => new(null, new BlitStruct<ApplicationControlProperty>(1), false, false, null, 0, 0, 0, TitleLanguage.AmericanEnglish);
private readonly byte _mainThreadPriority;
private readonly uint _mainThreadStackSize;
@@ -31,15 +32,15 @@ namespace Ryujinx.HLE.Loaders.Processes
public readonly bool AllowCodeMemoryForJit;
public ProcessResult(
- MetaLoader metaLoader,
- ApplicationControlProperty applicationControlProperties,
- bool diskCacheEnabled,
- bool allowCodeMemoryForJit,
- IDiskCacheLoadState diskCacheLoadState,
- ulong pid,
- byte mainThreadPriority,
- uint mainThreadStackSize,
- TitleLanguage titleLanguage)
+ MetaLoader metaLoader,
+ BlitStruct<ApplicationControlProperty> applicationControlProperties,
+ bool diskCacheEnabled,
+ bool allowCodeMemoryForJit,
+ IDiskCacheLoadState diskCacheLoadState,
+ ulong pid,
+ byte mainThreadPriority,
+ uint mainThreadStackSize,
+ TitleLanguage titleLanguage)
{
_mainThreadPriority = mainThreadPriority;
_mainThreadStackSize = mainThreadStackSize;
@@ -48,7 +49,7 @@ namespace Ryujinx.HLE.Loaders.Processes
ProcessId = pid;
MetaLoader = metaLoader;
- ApplicationControlProperties = applicationControlProperties;
+ ApplicationControlProperties = applicationControlProperties.Value;
if (metaLoader is not null)
{