guess at possible bug in #192

it may be that we try reading a corrupted os/2 table, hard to tell without test document.
This commit is contained in:
Eliot Jones
2020-07-26 14:36:35 +01:00
parent 142c871c47
commit dc55fd8011

View File

@@ -67,11 +67,42 @@
lastCharacterIndex); lastCharacterIndex);
} }
var sTypoAscender = data.ReadSignedShort(); short sTypoAscender;
var sTypoDescender = data.ReadSignedShort(); short sTypoDescender;
var sTypoLineGap = data.ReadSignedShort(); short sTypoLineGap;
var usWinAscent = data.ReadUnsignedShort(); ushort usWinAscent;
var usWinDescent = data.ReadUnsignedShort(); ushort usWinDescent;
try
{
sTypoAscender = data.ReadSignedShort();
sTypoDescender = data.ReadSignedShort();
sTypoLineGap = data.ReadSignedShort();
usWinAscent = data.ReadUnsignedShort();
usWinDescent = data.ReadUnsignedShort();
}
catch
{
// Font may be invalid. Try falling back to shorter version...
return new Os2Table(header, version, xAvgCharWidth,
weightClass, widthClass, typeFlags, ySubscriptXSize,
ySubscriptYSize,
ySubscriptXOffset,
ySubscriptYOffset,
ySuperscriptXSize,
ySuperscriptYSize,
ySuperscriptXOffset,
ySuperscriptYOffset,
yStrikeoutSize,
yStrikeoutPosition,
familyClass,
panose,
unicodeCharRange,
vendorId,
selectionFlags,
firstCharacterIndex,
lastCharacterIndex);
}
if (version == 0) if (version == 0)
{ {