diff --git a/SabreTools.Serialization/Extensions/PortableExecutable.cs b/SabreTools.Serialization/Extensions/PortableExecutable.cs
index d96a8029..b39ce9f1 100644
--- a/SabreTools.Serialization/Extensions/PortableExecutable.cs
+++ b/SabreTools.Serialization/Extensions/PortableExecutable.cs
@@ -157,7 +157,7 @@ namespace SabreTools.Data.Extensions
///
/// Resource data entry to parse into an accelerator table resource
/// A filled accelerator table resource on success, null on error
- public static AcceleratorTableEntry[]? AsAcceleratorTableResource(this Models.PortableExecutable.Resource.DataEntry? entry)
+ public static AcceleratorTable? AsAcceleratorTableResource(this Models.PortableExecutable.Resource.DataEntry? entry)
{
// If we have data that's invalid for this resource type, we can't do anything
if (entry?.Data is null || entry.Data.Length % 8 != 0)
@@ -170,12 +170,13 @@ namespace SabreTools.Data.Extensions
int offset = 0;
// Create the output object
- var table = new AcceleratorTableEntry[count];
+ var table = new AcceleratorTable();
+ table.Entries = new AcceleratorTableEntry[count];
// Read in the table
for (int i = 0; i < count; i++)
{
- table[i] = ParseAcceleratorTableEntry(entry.Data, ref offset);
+ table.Entries[i] = ParseAcceleratorTableEntry(entry.Data, ref offset);
}
return table;
diff --git a/SabreTools.Serialization/Wrappers/PortableExecutable.Printing.cs b/SabreTools.Serialization/Wrappers/PortableExecutable.Printing.cs
index c9f1adf4..904f9d6c 100644
--- a/SabreTools.Serialization/Wrappers/PortableExecutable.Printing.cs
+++ b/SabreTools.Serialization/Wrappers/PortableExecutable.Printing.cs
@@ -1317,18 +1317,18 @@ namespace SabreTools.Serialization.Wrappers
{
string padding = new(' ', (level + 1) * 2);
- AcceleratorTableEntry[]? acceleratorTable = null;
+ AcceleratorTable? acceleratorTable = null;
try { acceleratorTable = entry.AsAcceleratorTableResource(); } catch { }
- if (acceleratorTable is null)
+ if (acceleratorTable?.Entries is null)
{
builder.AppendLine($"{padding}Accelerator table resource found, but malformed");
return;
}
- for (int i = 0; i < acceleratorTable.Length; i++)
+ for (int i = 0; i < acceleratorTable.Entries.Length; i++)
{
- var acceleratorTableEntry = acceleratorTable[i];
+ var acceleratorTableEntry = acceleratorTable.Entries[i];
builder.AppendLine($"{padding}Accelerator Table Entry {i}:");
builder.AppendLine($"{padding} Flags: {acceleratorTableEntry.Flags} (0x{acceleratorTableEntry.Flags:X})");
builder.AppendLine(acceleratorTableEntry.Ansi, $"{padding} Ansi");