summaryrefslogtreecommitdiff
path: root/fitz
diff options
context:
space:
mode:
Diffstat (limited to 'fitz')
-rw-r--r--fitz/doc_link.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fitz/doc_link.c b/fitz/doc_link.c
index d558d18a..53fe4328 100644
--- a/fitz/doc_link.c
+++ b/fitz/doc_link.c
@@ -55,10 +55,11 @@ fz_keep_link(fz_context *ctx, fz_link *link)
void
fz_drop_link(fz_context *ctx, fz_link *link)
{
- if (link && --link->refs == 0)
+ while (link && --link->refs == 0)
{
- fz_drop_link(ctx, link->next);
+ fz_link *next = link->next;
fz_free_link_dest(ctx, &link->dest);
fz_free(ctx, link);
+ link = next;
}
}