summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-graft.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-graft.c')
-rw-r--r--source/pdf/pdf-graft.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/pdf/pdf-graft.c b/source/pdf/pdf-graft.c
index 50be9790..2fe4f26c 100644
--- a/source/pdf/pdf-graft.c
+++ b/source/pdf/pdf-graft.c
@@ -120,6 +120,7 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj)
fz_var(buffer);
fz_var(ref);
+ fz_var(new_obj);
fz_try(ctx)
{
@@ -131,7 +132,6 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj)
/* Return a ref to the new_obj making sure to attach any stream */
pdf_update_object(ctx, map->dst, new_num, new_obj);
- pdf_drop_obj(ctx, new_obj);
ref = pdf_new_indirect(ctx, map->dst, new_num, 0);
if (pdf_is_stream(ctx, obj))
{
@@ -140,7 +140,10 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj)
}
}
fz_always(ctx)
+ {
+ pdf_drop_obj(ctx, new_obj);
fz_drop_buffer(ctx, buffer);
+ }
fz_catch(ctx)
{
pdf_drop_obj(ctx, ref);