diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2011-05-19 15:01:14 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2011-05-19 15:01:14 +0100 |
commit | 3bf453e7987830459ca677c8fa1b93fbd6c4a7e3 (patch) | |
tree | accf2f54b74f7772fee8d22f14e398c6b17b581e | |
parent | bc9e69257a1605d67aca0cd121e167d7e0ae22be (diff) | |
download | ghostpdl-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.c | 2 |
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 |