diff options
Diffstat (limited to 'source/fitz/colorspace.c')
-rw-r--r-- | source/fitz/colorspace.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/source/fitz/colorspace.c b/source/fitz/colorspace.c index 42aa6129..d145be27 100644 --- a/source/fitz/colorspace.c +++ b/source/fitz/colorspace.c @@ -198,23 +198,16 @@ void fz_new_colorspace_context(fz_context *ctx) fz_colorspace_context * fz_keep_colorspace_context(fz_context *ctx) { - if (!ctx || !ctx->colorspace) + if (!ctx) return NULL; - fz_lock(ctx, FZ_LOCK_ALLOC); - ctx->colorspace->ctx_refs++; - fz_unlock(ctx, FZ_LOCK_ALLOC); - return ctx->colorspace; + return fz_keep_imp(ctx, ctx->colorspace, &ctx->colorspace->ctx_refs); } void fz_drop_colorspace_context(fz_context *ctx) { - int drop; - if (!ctx || !ctx->colorspace) + if (!ctx) return; - fz_lock(ctx, FZ_LOCK_ALLOC); - drop = --ctx->colorspace->ctx_refs; - fz_unlock(ctx, FZ_LOCK_ALLOC); - if (drop == 0) + if (fz_drop_imp(ctx, ctx->colorspace, &ctx->colorspace->ctx_refs)) fz_free(ctx, ctx->colorspace); } |