summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2021-09-16 11:37:08 -0700
committerRay Johnston <ray.johnston@artifex.com>2021-09-16 11:43:11 -0700
commit727d84d1a52d7949c13859c9b528dd74cb8be6a2 (patch)
tree777cdf46f2f44ce0f8037364b5aca86feef2aa4b
parent3dc164493a8872dbe6604e263a2ceaff6fa66366 (diff)
downloadghostpdl-727d84d1a52d7949c13859c9b528dd74cb8be6a2.tar.gz
Fix Bug 704330: NupControl and clist problems to pkmraw.
Files that have a page with transparency followed by a page that does not use transparency in the same nest that are using the clist, such as the file for this bug and tests_private/comparefiles/Bug696687.pdf are examples. The problem is that the clist writer uses the 'clist_color_info' to determine the depth, etc. when writing colors into the clist, and a page that uses transparency changes it, but did not restore it when the pdf14 device was popped (disabled). The fix is simple -- restore this as well as the color_info for the clistdev.
-rw-r--r--base/gdevp14.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/base/gdevp14.c b/base/gdevp14.c
index 95974050c..d7992bc42 100644
--- a/base/gdevp14.c
+++ b/base/gdevp14.c
@@ -10410,6 +10410,7 @@ pdf14_clist_composite(gx_device * dev, gx_device ** pcdev,
pdf14_decrement_smask_color(pgs, dev);
/* Restore the color_info for the clist device */
clistdev->color_info = pdev->saved_target_color_info;
+ ((gx_device_clist_writer*)clistdev)->clist_color_info = clistdev->color_info; /* also reset for writer */
set_dev_proc(clistdev, encode_color, pdev->saved_target_encode_color);
set_dev_proc(clistdev, decode_color, pdev->saved_target_decode_color);
set_dev_proc(clistdev, get_color_mapping_procs, pdev->saved_target_get_color_mapping_procs);