diff options
-rw-r--r-- | include/mupdf/fitz/context.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/include/mupdf/fitz/context.h b/include/mupdf/fitz/context.h index 5f047721..50e8eeaa 100644 --- a/include/mupdf/fitz/context.h +++ b/include/mupdf/fitz/context.h @@ -607,7 +607,8 @@ fz_keep_imp(fz_context *ctx, void *p, int *refs) { if (p) { - (void)Memento_takeRef(p); + if (*refs > 0) + (void)Memento_takeRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) ++*refs; @@ -621,7 +622,8 @@ fz_keep_imp8(fz_context *ctx, void *p, int8_t *refs) { if (p) { - (void)Memento_takeRef(p); + if (*refs > 0) + (void)Memento_takeRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) ++*refs; @@ -635,7 +637,8 @@ fz_keep_imp16(fz_context *ctx, void *p, int16_t *refs) { if (p) { - (void)Memento_takeRef(p); + if (*refs > 0) + (void)Memento_takeRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) ++*refs; @@ -650,7 +653,8 @@ fz_drop_imp(fz_context *ctx, void *p, int *refs) if (p) { int drop; - (void)Memento_dropRef(p); + if (*refs > 0) + (void)Memento_dropRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) drop = --*refs == 0; @@ -668,7 +672,8 @@ fz_drop_imp8(fz_context *ctx, void *p, int8_t *refs) if (p) { int drop; - (void)Memento_dropRef(p); + if (*refs > 0) + (void)Memento_dropRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) drop = --*refs == 0; @@ -686,7 +691,8 @@ fz_drop_imp16(fz_context *ctx, void *p, int16_t *refs) if (p) { int drop; - (void)Memento_dropRef(p); + if (*refs > 0) + (void)Memento_dropRef(p); fz_lock(ctx, FZ_LOCK_ALLOC); if (*refs > 0) drop = --*refs == 0; |