From 93f4de7219d09d50bdf5fde2bab5c916a287b13a Mon Sep 17 00:00:00 2001
From: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
Date: Thu, 18 Jul 2024 05:27:18 +0200
Subject: [PATCH] Add docstrings for exceptions to methods near
TryGetApplicationsFromFile()
---
src/Ryujinx.HLE/Loaders/Npdm/ACI0.cs | 6 ++++++
src/Ryujinx.HLE/Loaders/Npdm/ACID.cs | 5 +++++
src/Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs | 4 ++++
src/Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs | 6 ++++++
src/Ryujinx.HLE/Loaders/Npdm/KernelAccessControl.cs | 4 ++++
src/Ryujinx.HLE/Loaders/Npdm/Npdm.cs | 7 +++++++
.../Loaders/Npdm/ServiceAccessControl.cs | 5 +++++
src/Ryujinx.UI.Common/App/ApplicationLibrary.cs | 13 +++++++++++++
8 files changed, 50 insertions(+)
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/ACI0.cs b/src/Ryujinx.HLE/Loaders/Npdm/ACI0.cs
index 9a5b6b0aa0..8d828e8edb 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/ACI0.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/ACI0.cs
@@ -15,6 +15,12 @@ namespace Ryujinx.HLE.Loaders.Npdm
public ServiceAccessControl ServiceAccessControl { get; private set; }
public KernelAccessControl KernelAccessControl { get; private set; }
+ /// The stream doesn't contain valid ACI0 data.
+ /// The stream does not support reading, is , or is already closed.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
+ /// The FsAccessHeader.ContentOwnerId section is not implemented.
public Aci0(Stream stream, int offset)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/ACID.cs b/src/Ryujinx.HLE/Loaders/Npdm/ACID.cs
index ab30b40cae..57d0ee2743 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/ACID.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/ACID.cs
@@ -19,6 +19,11 @@ namespace Ryujinx.HLE.Loaders.Npdm
public ServiceAccessControl ServiceAccessControl { get; private set; }
public KernelAccessControl KernelAccessControl { get; private set; }
+ /// The stream doesn't contain valid ACID data.
+ /// The stream does not support reading, is , or is already closed.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public Acid(Stream stream, int offset)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs b/src/Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs
index f17ca348b1..a369f9f2d5 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs
@@ -11,6 +11,10 @@ namespace Ryujinx.HLE.Loaders.Npdm
public int Unknown3 { get; private set; }
public int Unknown4 { get; private set; }
+ /// The stream does not support reading, is , or is already closed.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public FsAccessControl(Stream stream, int offset, int size)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs b/src/Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs
index 5987be0ef1..085397d3e0 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs
@@ -9,6 +9,12 @@ namespace Ryujinx.HLE.Loaders.Npdm
public int Version { get; private set; }
public ulong PermissionsBitmask { get; private set; }
+ /// The stream contains invalid data.
+ /// The ContentOwnerId section is not implemented.s
+ /// The stream does not support reading, is , or is already closed.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public FsAccessHeader(Stream stream, int offset, int size)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/KernelAccessControl.cs b/src/Ryujinx.HLE/Loaders/Npdm/KernelAccessControl.cs
index 171243799d..979c6f6690 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/KernelAccessControl.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/KernelAccessControl.cs
@@ -6,6 +6,10 @@ namespace Ryujinx.HLE.Loaders.Npdm
{
public int[] Capabilities { get; private set; }
+ /// The stream does not support reading, is , or is already closed.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public KernelAccessControl(Stream stream, int offset, int size)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/Npdm.cs b/src/Ryujinx.HLE/Loaders/Npdm/Npdm.cs
index 622d7ee034..4a99de98c2 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/Npdm.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/Npdm.cs
@@ -24,6 +24,13 @@ namespace Ryujinx.HLE.Loaders.Npdm
public Aci0 Aci0 { get; private set; }
public Acid Acid { get; private set; }
+ /// The stream doesn't contain valid NPDM data.
+ /// The FsAccessHeader.ContentOwnerId section is not implemented.
+ /// The stream does not support reading, is , or is already closed.
+ /// An error occured while reading bytes from the stream.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public Npdm(Stream stream)
{
BinaryReader reader = new(stream);
diff --git a/src/Ryujinx.HLE/Loaders/Npdm/ServiceAccessControl.cs b/src/Ryujinx.HLE/Loaders/Npdm/ServiceAccessControl.cs
index bb6df27faa..b6bc6492d5 100644
--- a/src/Ryujinx.HLE/Loaders/Npdm/ServiceAccessControl.cs
+++ b/src/Ryujinx.HLE/Loaders/Npdm/ServiceAccessControl.cs
@@ -9,6 +9,11 @@ namespace Ryujinx.HLE.Loaders.Npdm
{
public IReadOnlyDictionary Services { get; private set; }
+ /// The stream does not support reading, is , or is already closed.
+ /// An error occured while reading bytes from the stream.
+ /// The end of the stream is reached.
+ /// The stream is closed.
+ /// An I/O error occurred.
public ServiceAccessControl(Stream stream, int offset, int size)
{
stream.Seek(offset, SeekOrigin.Begin);
diff --git a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
index 2baf060873..9a548138c7 100644
--- a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
+++ b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
@@ -72,6 +72,11 @@ namespace Ryujinx.UI.App.Common
return resourceByteArray;
}
+ /// The npdm file doesn't contain valid data.
+ /// The FsAccessHeader.ContentOwnerId section is not implemented.
+ /// An error occured while reading bytes from the stream.
+ /// The end of the stream is reached.
+ /// An I/O error occurred.
private ApplicationData GetApplicationFromExeFs(PartitionFileSystem pfs, string filePath)
{
ApplicationData data = new()
@@ -103,6 +108,13 @@ namespace Ryujinx.UI.App.Common
}
}
+ /// The configured key set is missing a key.
+ /// An error occured while reading PFS data.
+ /// The npdm file doesn't contain valid data.
+ /// The FsAccessHeader.ContentOwnerId section is not implemented.
+ /// An error occured while reading bytes from the stream.
+ /// The end of the stream is reached.
+ /// An I/O error occurred.
private ApplicationData GetApplicationFromNsp(PartitionFileSystem pfs, string filePath)
{
bool isExeFs = false;
@@ -417,6 +429,7 @@ namespace Ryujinx.UI.App.Common
};
applications.Add(application);
+
break;
}
}