summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-object.c')
-rw-r--r--source/pdf/pdf-object.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c
index b189a125..2ac8ae85 100644
--- a/source/pdf/pdf-object.c
+++ b/source/pdf/pdf-object.c
@@ -204,7 +204,7 @@ pdf_keep_obj(fz_context *ctx, pdf_obj *obj)
if (obj >= PDF_OBJ__LIMIT)
{
(void)Memento_takeRef(obj);
- obj->refs ++;
+ (void)fz_keep_imp16(ctx, obj, &obj->refs);
}
return obj;
}
@@ -1732,14 +1732,15 @@ pdf_drop_obj(fz_context *ctx, pdf_obj *obj)
if (obj >= PDF_OBJ__LIMIT)
{
(void)Memento_dropRef(obj);
- if (--obj->refs)
- return;
- if (obj->kind == PDF_ARRAY)
- pdf_drop_array(ctx, obj);
- else if (obj->kind == PDF_DICT)
- pdf_drop_dict(ctx, obj);
- else
- fz_free(ctx, obj);
+ if (fz_drop_imp16(ctx, obj, &obj->refs))
+ {
+ if (obj->kind == PDF_ARRAY)
+ pdf_drop_array(ctx, obj);
+ else if (obj->kind == PDF_DICT)
+ pdf_drop_dict(ctx, obj);
+ else
+ fz_free(ctx, obj);
+ }
}
}