Compare commits

..

3 Commits
1.2.0 ... 1.2.1

Author SHA1 Message Date
Matt Nadareski
beca747943 Fix other data endpoint issues 2023-11-15 12:44:32 -05:00
Matt Nadareski
58e538eff6 Bump version 2023-11-15 12:41:21 -05:00
Matt Nadareski
4f04c8aa89 Fix end-of-data issue, add .NET 8 syntax 2023-11-15 12:34:57 -05:00
4 changed files with 51 additions and 51 deletions

View File

@@ -289,7 +289,7 @@ namespace SabreTools.Serialization
try
{
XmlSerializer serializer = new XmlSerializer(typeof(AssemblyManifest));
var serializer = new XmlSerializer(typeof(AssemblyManifest));
return serializer.Deserialize(new MemoryStream(entry.Data)) as AssemblyManifest;
}
catch
@@ -358,7 +358,7 @@ namespace SabreTools.Serialization
dialogTemplateExtended.MenuResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -394,7 +394,7 @@ namespace SabreTools.Serialization
dialogTemplateExtended.ClassResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -425,7 +425,7 @@ namespace SabreTools.Serialization
dialogTemplateExtended.TitleResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -447,9 +447,9 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
@@ -502,7 +502,7 @@ namespace SabreTools.Serialization
dialogItemTemplate.ClassResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -532,7 +532,7 @@ namespace SabreTools.Serialization
dialogItemTemplate.TitleResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -550,16 +550,16 @@ namespace SabreTools.Serialization
#endregion
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
dialogItemExtendedTemplates.Add(dialogItemTemplate);
}
dialogBoxResource.ExtendedDialogItemTemplates = dialogItemExtendedTemplates.ToArray();
dialogBoxResource.ExtendedDialogItemTemplates = [.. dialogItemExtendedTemplates];
#endregion
}
@@ -600,7 +600,7 @@ namespace SabreTools.Serialization
dialogTemplate.MenuResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -636,7 +636,7 @@ namespace SabreTools.Serialization
dialogTemplate.ClassResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -667,7 +667,7 @@ namespace SabreTools.Serialization
dialogTemplate.TitleResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -688,9 +688,9 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
@@ -742,7 +742,7 @@ namespace SabreTools.Serialization
dialogItemTemplate.ClassResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -772,7 +772,7 @@ namespace SabreTools.Serialization
dialogItemTemplate.TitleResource = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the WORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 2) != 0)
_ = entry.Data.ReadByte(ref offset);
@@ -790,16 +790,16 @@ namespace SabreTools.Serialization
#endregion
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
dialogItemTemplates.Add(dialogItemTemplate);
}
dialogBoxResource.DialogItemTemplates = dialogItemTemplates.ToArray();
dialogBoxResource.DialogItemTemplates = [.. dialogItemTemplates];
#endregion
}
@@ -929,9 +929,9 @@ namespace SabreTools.Serialization
extendedMenuItem.MenuText = entry.Data.ReadString(ref offset, Encoding.Unicode);
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
@@ -939,7 +939,7 @@ namespace SabreTools.Serialization
}
}
menuResource.ExtendedMenuItems = extendedMenuItems.ToArray();
menuResource.ExtendedMenuItems = [.. extendedMenuItems];
#endregion
}
@@ -982,16 +982,16 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != entry.Data.Length)
if (offset < entry.Data.Length)
{
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
_ = entry.Data.ReadByte(ref offset);
}
menuItems.Add(menuItem);
}
menuResource.MenuItems = menuItems.ToArray();
menuResource.MenuItems = [.. menuItems];
#endregion
}
@@ -1033,7 +1033,7 @@ namespace SabreTools.Serialization
messageResourceBlocks.Add(messageResourceBlock);
}
messageResourceData.Blocks = messageResourceBlocks.ToArray();
messageResourceData.Blocks = [.. messageResourceBlocks];
}
// Message resource entries
@@ -1138,7 +1138,7 @@ namespace SabreTools.Serialization
if (versionInfo.Key != "VS_VERSION_INFO")
return null;
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
versionInfo.Padding1 = entry.Data.ReadUInt16(ref offset);
// Read fixed file info
@@ -1164,7 +1164,7 @@ namespace SabreTools.Serialization
versionInfo.Value = fixedFileInfo;
}
while ((offset % 4) != 0)
while (offset < entry.Data.Length && (offset % 4) != 0)
versionInfo.Padding2 = entry.Data.ReadUInt16(ref offset);
// TODO: Make the following block a private helper method
@@ -1240,9 +1240,9 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
stringFileInfo.Padding = data.ReadByte(ref offset);
}
@@ -1257,9 +1257,9 @@ namespace SabreTools.Serialization
stringTable.Key = data.ReadString(ref offset, Encoding.Unicode);
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
stringTable.Padding = data.ReadByte(ref offset);
}
@@ -1274,9 +1274,9 @@ namespace SabreTools.Serialization
stringData.Key = data.ReadString(ref offset, Encoding.Unicode);
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
stringData.Padding = data.ReadByte(ref offset);
}
@@ -1288,21 +1288,21 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
_ = data.ReadByte(ref offset);
}
stringTableChildren.Add(stringData);
}
stringTable.Children = stringTableChildren.ToArray();
stringTable.Children = [.. stringTableChildren];
stringFileInfoChildren.Add(stringTable);
}
stringFileInfo.Children = stringFileInfoChildren.ToArray();
stringFileInfo.Children = [.. stringFileInfoChildren];
return stringFileInfo;
}
@@ -1328,9 +1328,9 @@ namespace SabreTools.Serialization
return null;
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
varFileInfo.Padding = data.ReadByte(ref offset);
}
@@ -1350,9 +1350,9 @@ namespace SabreTools.Serialization
}
// Align to the DWORD boundary if we're not at the end
if (offset != data.Length)
if (offset < data.Length)
{
while ((offset % 4) != 0)
while (offset < data.Length && (offset % 4) != 0)
varData.Padding = data.ReadByte(ref offset);
}
@@ -1366,12 +1366,12 @@ namespace SabreTools.Serialization
varDataValue.Add(languageAndCodeIdentifierPair);
}
varData.Value = varDataValue.ToArray();
varData.Value = [.. varDataValue];
varFileInfoChildren.Add(varData);
}
varFileInfo.Children = varFileInfoChildren.ToArray();
varFileInfo.Children = [.. varFileInfoChildren];
return varFileInfo;
}

View File

@@ -8,7 +8,7 @@
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.2.0</Version>
<Version>1.2.1</Version>
<!-- Package Properties -->
<Authors>Matt Nadareski</Authors>

View File

@@ -48,9 +48,9 @@ namespace SabreTools.Serialization.Streams
break;
// Align to the 4-byte boundary if we're not at the end
if (data.Position != data.Length)
if (data.Position < data.Length)
{
while ((data.Position % 4) != 0)
while (data.Position < data.Length && (data.Position % 4) != 0)
_ = data.ReadByteValue();
}
else

View File

@@ -716,7 +716,7 @@ namespace SabreTools.Serialization.Streams
{
var attributeCertificateTable = new List<AttributeCertificateTableEntry>();
while (data.Position < endOffset && data.Position != data.Length)
while (data.Position < endOffset && data.Position < data.Length)
{
var entry = new AttributeCertificateTableEntry();
@@ -731,7 +731,7 @@ namespace SabreTools.Serialization.Streams
attributeCertificateTable.Add(entry);
// Align to the 8-byte boundary
while ((data.Position % 8) != 0 && data.Position < endOffset && data.Position != data.Length)
while ((data.Position % 8) != 0 && data.Position < endOffset && data.Position < data.Length)
_ = data.ReadByteValue();
}