diff options
-rw-r--r-- | fitz/doc_link.c | 5 |
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; } } |