diff options
author | Robin Watts <robin.watts@artifex.com> | 2017-09-19 18:01:27 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2017-09-20 16:54:32 +0100 |
commit | fb95f670d3e54befca541dd35c2d7c2fe690ffbd (patch) | |
tree | e6e817d1948c4ee84464ed1dff28bca13b31fbee /base/gxscanc.c | |
parent | 29d1b0b1152324699f63ecf411bf7d590085c403 (diff) | |
download | ghostpdl-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.c | 7 |
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); |