From 30ffbe3cbeafde28f47429f856894c590ab8a0fd Mon Sep 17 00:00:00 2001 From: Gunnsteinn Hall Date: Tue, 1 Aug 2017 15:21:33 +0000 Subject: [PATCH] Only attempt to load annotation from a valid indirect object for annotation Popup entries. Fixes #91. --- pdf/model/annotations.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pdf/model/annotations.go b/pdf/model/annotations.go index 5c3b9a0b..a94b0080 100644 --- a/pdf/model/annotations.go +++ b/pdf/model/annotations.go @@ -938,18 +938,18 @@ func (r *PdfReader) newPdfAnnotationMarkupFromDict(d *PdfObjectDictionary) (*Pdf if _, isNull := obj.(*PdfObjectNull); !isNull { return nil, fmt.Errorf("Popup should point to an indirect object") } - } + } else { + popupAnnotObj, err := r.newPdfAnnotationFromIndirectObject(indObj) + if err != nil { + return nil, err + } + popupAnnot, isPopupAnnot := popupAnnotObj.context.(*PdfAnnotationPopup) + if !isPopupAnnot { + return nil, fmt.Errorf("Popup not referring to a popup annotation!") + } - popupAnnotObj, err := r.newPdfAnnotationFromIndirectObject(indObj) - if err != nil { - return nil, err + annot.Popup = popupAnnot } - popupAnnot, isPopupAnnot := popupAnnotObj.context.(*PdfAnnotationPopup) - if !isPopupAnnot { - return nil, fmt.Errorf("Popup not referring to a popup annotation!") - } - - annot.Popup = popupAnnot } if obj := d.Get("CA"); obj != nil {