diff --git a/poppler/Outline.cc b/poppler/Outline.cc index 707ffdb..bad4533 100644 --- a/poppler/Outline.cc +++ b/poppler/Outline.cc @@ -47,9 +47,7 @@ Outline::Outline(Object *outlineObj, XRef *xref) { if (!outlineObj->isDict()) { return; } - items = OutlineItem::readItemList(outlineObj->dictLookupNF("First", &first), - outlineObj->dictLookupNF("Last", &last), - xref); + items = OutlineItem::readItemList(outlineObj->dictLookupNF("First", &first), xref); first.free(); last.free(); } @@ -115,17 +113,13 @@ OutlineItem::~OutlineItem() { nextRef.free(); } -GooList *OutlineItem::readItemList(Object *firstItemRef, Object *lastItemRef, - XRef *xrefA) { +GooList *OutlineItem::readItemList(Object *firstItemRef, XRef *xrefA) { GooList *items; char* alreadyRead; OutlineItem *item; Object obj; Object *p; - if (!lastItemRef->isRef()) - return NULL; - items = new GooList(); alreadyRead = (char *)gmalloc(xrefA->getNumObjects()); @@ -144,10 +138,6 @@ GooList *OutlineItem::readItemList(Object *firstItemRef, Object *lastItemRef, item = new OutlineItem(obj.getDict(), xrefA); obj.free(); items->append(item); - if (p->getRef().num == lastItemRef->getRef().num && - p->getRef().gen == lastItemRef->getRef().gen) { - break; - } p = &item->nextRef; } @@ -163,7 +153,7 @@ GooList *OutlineItem::readItemList(Object *firstItemRef, Object *lastItemRef, void OutlineItem::open() { if (!kids) { - kids = readItemList(&firstRef, &lastRef, xref); + kids = readItemList(&firstRef, xref); } } diff --git a/poppler/Outline.h b/poppler/Outline.h index 90190e6..7276c35 100644 --- a/poppler/Outline.h +++ b/poppler/Outline.h @@ -59,8 +59,7 @@ public: OutlineItem(Dict *dict, XRef *xrefA); ~OutlineItem(); - static GooList *readItemList(Object *firstItemRef, Object *lastItemRef, - XRef *xrefA); + static GooList *readItemList(Object *firstItemRef, XRef *xrefA); void open(); void close();