summaryrefslogtreecommitdiff
path: root/base/gxscanc.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2017-09-19 18:01:27 +0100
committerRobin Watts <robin.watts@artifex.com>2017-09-20 16:54:32 +0100
commitfb95f670d3e54befca541dd35c2d7c2fe690ffbd (patch)
treee6e817d1948c4ee84464ed1dff28bca13b31fbee /base/gxscanc.c
parent29d1b0b1152324699f63ecf411bf7d590085c403 (diff)
downloadghostpdl-fb95f670d3e54befca541dd35c2d7c2fe690ffbd.tar.gz
Fix in*fill etc test files.
The new scan converter has been assuming that anything with an x coord < 0 is off screen. While this is true for almost every device I can think of, it need not be true for the hit detection device used for infill/instroke operations. Fixed to use INT_MIN here.
Diffstat (limited to 'base/gxscanc.c')
-rw-r--r--base/gxscanc.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/base/gxscanc.c b/base/gxscanc.c
index a191efa7a..a3397a9b0 100644
--- a/base/gxscanc.c
+++ b/base/gxscanc.c
@@ -37,6 +37,7 @@
#include "gxdcolor.h"
#include "assert_.h"
#include <stdlib.h> /* for qsort */
+#include <limits.h> /* For INT_MAX */
/* Overview of the scan conversion algorithm.
*
@@ -1971,7 +1972,7 @@ gx_filter_edgebuffer_app(gx_device * restrict pdev,
int ll, lr, rl, rr, wind, marked_to;
/* Avoid double setting pixels, by keeping where we have marked to. */
- marked_to = 0;
+ marked_to = INT_MIN;
while (rowlen > 0) {
if (rule == gx_rule_even_odd) {
/* Even Odd */
@@ -3828,7 +3829,7 @@ gx_filter_edgebuffer_tr_app(gx_device * restrict pdev,
int ll, llid, lr, lrid, rlid, rr, rrid, wind, marked_to;
/* Avoid double setting pixels, by keeping where we have marked to. */
- marked_to = 0;
+ marked_to = INT_MIN;
while (rowlen > 0) {
if (rule == gx_rule_even_odd) {
/* Even Odd */
@@ -4050,8 +4051,6 @@ rowdifferent:{}
offset += 4;
rowlen--;
- assert(le.start.x >= -fixed_half);
- assert(le.end.x >= -fixed_half);
assert(re.start.x >= le.start.x);
assert(re.end.x >= le.end.x);
assert(le.start.y <= ybot + fixed_half);