summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2021-09-16 11:37:08 -0700
committerChris Liddell <chris.liddell@artifex.com>2021-09-16 20:31:10 +0100
commit64e1d4f42564ce2e18e0e0833b33ad042aee5593 (patch)
tree7bf3558f96b339c2412efeb51b601560a914379d
parent1c4b4ed8772c561034b267f30c44c8b072ee4c26 (diff)
downloadghostpdl-64e1d4f42564ce2e18e0e0833b33ad042aee5593.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);