From 72ffa1f308abe9d5926e872659418ab0a6396b37 Mon Sep 17 00:00:00 2001 From: Eliot Jones Date: Wed, 3 Jan 2018 19:17:12 +0000 Subject: [PATCH] make byte array input bytes behave correctly when seeking rather than forcing the consumer to work around it. --- src/UglyToad.Pdf/Fonts/TrueType/Tables/GlyphDataTable.cs | 4 ++-- src/UglyToad.Pdf/Fonts/TrueType/Tables/HeaderTable.cs | 2 +- .../Fonts/TrueType/Tables/HorizontalHeaderTable.cs | 2 +- .../Fonts/TrueType/Tables/IndexToLocationTable.cs | 2 +- src/UglyToad.Pdf/Fonts/TrueType/Tables/MaximumProfileTable.cs | 2 +- src/UglyToad.Pdf/Fonts/TrueType/Tables/PostScriptTable.cs | 2 +- src/UglyToad.Pdf/IO/ByteArrayInputBytes.cs | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/GlyphDataTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/GlyphDataTable.cs index eaf375f2..a04fbafa 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/GlyphDataTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/GlyphDataTable.cs @@ -25,7 +25,7 @@ public static GlyphDataTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table, HeaderTable headerTable, IndexToLocationTable indexToLocationTable) { - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var offsets = indexToLocationTable.GlyphOffsets; @@ -43,7 +43,7 @@ continue; } - data.Seek(offsets[i] - 1 + table.Offset); + data.Seek(offsets[i] + table.Offset); var contourCount = data.ReadSignedShort(); diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/HeaderTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/HeaderTable.cs index 55aba610..86a95f2b 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/HeaderTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/HeaderTable.cs @@ -87,7 +87,7 @@ public static HeaderTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table) { - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var version = data.Read32Fixed(); var fontRevision = data.Read32Fixed(); var checkSumAdjustment = data.ReadUnsignedInt(); diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/HorizontalHeaderTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/HorizontalHeaderTable.cs index 9cab098e..1c19b0ec 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/HorizontalHeaderTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/HorizontalHeaderTable.cs @@ -99,7 +99,7 @@ public static HorizontalHeaderTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table) { - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var majorVersion = data.ReadUnsignedShort(); var minorVersion = data.ReadUnsignedShort(); diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs index 062272d4..0b9c6b2e 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs @@ -29,7 +29,7 @@ const short shortFormat = 0; const short longFormat = 1; - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var format = headerTable.IndexToLocFormat; diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/MaximumProfileTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/MaximumProfileTable.cs index c55385f8..b665470c 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/MaximumProfileTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/MaximumProfileTable.cs @@ -32,7 +32,7 @@ public static BasicMaximumProfileTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table) { - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var version = data.Read32Fixed(); var numberOfGlyphs = data.ReadUnsignedShort(); diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/PostScriptTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/PostScriptTable.cs index 1eed6050..51702bc7 100644 --- a/src/UglyToad.Pdf/Fonts/TrueType/Tables/PostScriptTable.cs +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/PostScriptTable.cs @@ -81,7 +81,7 @@ public static PostScriptTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table, BasicMaximumProfileTable maximumProfileTable) { - data.Seek(table.Offset - 1); + data.Seek(table.Offset); var formatType = data.Read32Fixed(); var italicAngle = data.Read32Fixed(); var underlinePosition = data.ReadSignedShort(); diff --git a/src/UglyToad.Pdf/IO/ByteArrayInputBytes.cs b/src/UglyToad.Pdf/IO/ByteArrayInputBytes.cs index c2819066..ec680add 100644 --- a/src/UglyToad.Pdf/IO/ByteArrayInputBytes.cs +++ b/src/UglyToad.Pdf/IO/ByteArrayInputBytes.cs @@ -45,7 +45,7 @@ public void Seek(long position) { - CurrentOffset = (int)position; + CurrentOffset = (int)position - 1; CurrentByte = CurrentOffset < 0 ? (byte)0 : bytes[CurrentOffset]; } }