diff --git a/poppler/XRef.cc b/poppler/XRef.cc index 60c2f9d..f1e4e68 100644 --- a/poppler/XRef.cc +++ b/poppler/XRef.cc @@ -1145,7 +1145,7 @@ int XRef::getNumEntry(Guint offset) XRefEntry *e; for (int i = 1; i < size; ++i) { - e = getEntry(i); + e = getEntry(i, gFalse); if (e->offset < offset && e->offset >= resOffset) { res = i; @@ -1314,9 +1314,9 @@ GBool XRef::parseEntry(Guint offset, XRefEntry *entry) return r; } -XRefEntry *XRef::getEntry(int i) +XRefEntry *XRef::getEntry(int i, GBool examineNoneEntries) { - if (entries[i].type == xrefEntryNone) { + if (examineNoneEntries && entries[i].type == xrefEntryNone) { if ((!xRefStream) && mainXRefEntriesOffset) { if (!parseEntry(mainXRefEntriesOffset + 20*i, &entries[i])) { diff --git a/poppler/XRef.h b/poppler/XRef.h index ea2c1b4..464b3b3 100644 --- a/poppler/XRef.h +++ b/poppler/XRef.h @@ -127,7 +127,7 @@ public: int getNumEntry(Guint offset); // Direct access. - XRefEntry *getEntry(int i); + XRefEntry *getEntry(int i, GBool examineNoneEntries = gTrue); Object *getTrailerDict() { return &trailerDict; } // Write access