summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/pdf/pdf-annot.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
index c0436885..8e4fd9b1 100644
--- a/source/pdf/pdf-annot.c
+++ b/source/pdf/pdf-annot.c
@@ -494,18 +494,16 @@ static const char *annot_type_str(fz_annot_type type)
void
pdf_load_annots(pdf_document *doc, pdf_page *page, pdf_obj *annots)
{
- pdf_annot *annot, *head, **itr;
+ pdf_annot *annot, **itr;
pdf_obj *obj, *ap, *as, *n, *rect;
int i, len, keep_annot;
fz_context *ctx = doc->ctx;
fz_var(annot);
fz_var(itr);
- fz_var(head);
fz_var(keep_annot);
- head = NULL;
- itr = &head;
+ itr = &page->annots;
len = pdf_array_len(annots);
/*
@@ -530,7 +528,8 @@ pdf_load_annots(pdf_document *doc, pdf_page *page, pdf_obj *annots)
}
fz_catch(ctx)
{
- pdf_free_annot(ctx, head);
+ pdf_free_annot(ctx, page->annots);
+ page->annots = NULL;
fz_rethrow(ctx);
}
@@ -538,7 +537,7 @@ pdf_load_annots(pdf_document *doc, pdf_page *page, pdf_obj *annots)
Iterate through the newly created annot linked list, using a double pointer to
facilitate deleting broken annotations.
*/
- itr = &head;
+ itr = &page->annots;
while (*itr)
{
annot = *itr;
@@ -602,7 +601,8 @@ pdf_load_annots(pdf_document *doc, pdf_page *page, pdf_obj *annots)
{
if (fz_caught(ctx) == FZ_ERROR_TRYLATER)
{
- pdf_free_annot(ctx, head);
+ pdf_free_annot(ctx, page->annots);
+ page->annots = NULL;
fz_rethrow(ctx);
}
keep_annot = 0;
@@ -617,7 +617,6 @@ pdf_load_annots(pdf_document *doc, pdf_page *page, pdf_obj *annots)
}
}
- page->annots = head;
page->annot_tailp = itr;
}