summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'base/gxclrect.c')
-rw-r--r--base/gxclrect.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/base/gxclrect.c b/base/gxclrect.c
index 00f01ba2..6f71b61a 100644
--- a/base/gxclrect.c
+++ b/base/gxclrect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2019 Artifex Software, Inc.
+/* Copyright (C) 2001-2020 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -599,7 +599,8 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return 1;
if (dev_spec_op == gxdso_pattern_shfill_doesnt_need_path)
return 1;
- if (dev_spec_op == gxdso_supports_devn) {
+ if (dev_spec_op == gxdso_supports_devn
+ || dev_spec_op == gxdso_skip_icc_component_validation) {
cmm_dev_profile_t *dev_profile;
int code;
code = dev_proc(cdev, get_profile)((gx_device*) cdev, &dev_profile);
@@ -623,8 +624,8 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return cwdev->op_fill_active || cwdev->op_stroke_active;
}
/* forward to the appropriate super class */
- if (cdev->is_printer)
- return gdev_prn_forwarding_dev_spec_op(pdev, dev_spec_op, data, size);
+ if (cdev->orig_spec_op)
+ return cdev->orig_spec_op(pdev, dev_spec_op, data, size);
if (dev_proc(cdev, open_device) == pattern_clist_open_device)
return pattern_accum_dev_spec_op(pdev, dev_spec_op, data, size);
return gx_default_dev_spec_op(pdev, dev_spec_op, data, size);
@@ -985,7 +986,7 @@ clist_copy_planes(gx_device * dev,
}
/* 0x100 fudge is arbitrary, but the BufferSpace is large w.r.t. cbuf size so it doesn't matter */
- if ((cdev->cend - cdev->cnext) < 0x100 + (re.height * bytes_row * (long)cdev->color_info.num_components))
+ if ((cdev->cend - cdev->cnext) < 0x100 + ((long)cdev->color_info.num_components * re.height * bytes_row))
cmd_write_buffer(cdev, cmd_opv_end_run); /* Insure that all planes fit in the bufferspace */
rect.x = rx, rect.y = re.y;