summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2011-05-19 15:01:14 +0100
committerRobin Watts <Robin.Watts@artifex.com>2011-05-19 15:01:14 +0100
commit3bf453e7987830459ca677c8fa1b93fbd6c4a7e3 (patch)
treeaccf2f54b74f7772fee8d22f14e398c6b17b581e
parentbc9e69257a1605d67aca0cd121e167d7e0ae22be (diff)
downloadghostpdl-patt_trans_clist.tar.gz
Fix for icc profile refcounting.patt_trans_clist
Take new reference before discarding old one, lest we throw away the last reference and then can't pick it up again. This solves the SEGV with: gs\debugbin\gswin32c.exe -sDEVICE=ppmraw -o out.ppm -r300 ..\ghostpcl\tests_private\comparefiles\Bug689690.pdf No cluster differences expected.
-rw-r--r--gs/base/gdevp14.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gs/base/gdevp14.c b/gs/base/gdevp14.c
index 204718794..3f0455474 100644
--- a/gs/base/gdevp14.c
+++ b/gs/base/gdevp14.c
@@ -7141,11 +7141,11 @@ c_pdf14trans_clist_read_update(gs_composite_t * pcte, gx_device * cdev,
needs to inherit the ICC profile from the clist thread device
not the target device. */
#if !CMM_THREAD_SAFE
+ rc_increment(cl_icc_profile);
gx_monitor_enter(p14_icc_profile->lock);
rc_decrement(p14_icc_profile, "c_pdf14trans_clist_read_update");
gx_monitor_leave(p14_icc_profile->lock);
p14dev->icc_array->device_profile[0] = cl_icc_profile;
- rc_increment(cl_icc_profile);
#endif
/*
* If we are blending using spot colors (i.e. the output device