Only reset missed attempts count if table is found in CrossReferenceParser.Parse() and fix #1047

This commit is contained in:
BobLd 2025-05-27 19:44:31 +01:00
parent ca9f70ffb0
commit 5b566b53da
3 changed files with 12 additions and 3 deletions

View File

@ -7,6 +7,15 @@
public class GithubIssuesTests
{
[Fact]
public void Issue1047()
{
var path = IntegrationHelpers.GetSpecificTestDocumentPath("Hang.pdf");
var ex = Assert.Throws<PdfDocumentFormatException>(() => PdfDocument.Open(path, new ParsingOptions() { UseLenientParsing = true }));
Assert.Equal("The cross reference was not found.", ex.Message);
}
[Fact]
public void Issue1048()
{

View File

@ -10,7 +10,7 @@
using Tokenization.Scanner;
using Tokens;
internal class CrossReferenceParser
internal sealed class CrossReferenceParser
{
private readonly ILog log;
private readonly XrefOffsetValidator offsetValidator;
@ -151,8 +151,6 @@
{
log.Debug("Element was cross reference stream.");
missedAttempts = 0;
// Unread the numeric token.
tokenScanner.Seek(previousCrossReferenceLocation);
@ -169,6 +167,8 @@
continue;
}
missedAttempts = 0;
table.Add(tablePart);
previousCrossReferenceLocation = tablePart.Previous;