summaryrefslogtreecommitdiff
path: root/src/cairo-mesh-pattern-rasterizer.c
diff options
context:
space:
mode:
authorBryce Harrington <b.harrington@samsung.com>2014-02-18 21:13:53 -0800
committerBryce Harrington <b.harrington@samsung.com>2014-02-25 12:14:09 -0800
commit44a09f462c8ff59f864967f45f9b31e473632b7a (patch)
treeaa7701250e019a34a6fe3f4f31e6fc31993f48d1 /src/cairo-mesh-pattern-rasterizer.c
parent19f412bb1faa5391a03c121c31f7ad94fd275d82 (diff)
downloadcairo-44a09f462c8ff59f864967f45f9b31e473632b7a.tar.gz
mesh: Avoid theoretical infinite loops
This quells this warning: src/cairo-mesh-pattern-rasterizer.c:731:5: warning: cannot optimize possibly infinite loops I guess the compiler's complaining because if vsteps were negative or equal to UINT_MAX the loop could cycle infinitely. Silly compiler. Fix as suggested by Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-mesh-pattern-rasterizer.c')
-rw-r--r--src/cairo-mesh-pattern-rasterizer.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c
index 6f0dd6667..548e88056 100644
--- a/src/cairo-mesh-pattern-rasterizer.c
+++ b/src/cairo-mesh-pattern-rasterizer.c
@@ -697,9 +697,9 @@ rasterize_bezier_patch (unsigned char *data, int width, int height, int stride,
cairo_point_double_t p[4][4], double col[4][4])
{
double pv[4][2][4], cstart[4], cend[4], dcstart[4], dcend[4];
- int vsteps, v, i, k;
+ int v, i, k;
- vsteps = 1 << vshift;
+ v = 1 << vshift;
/*
* pv[i][0] is the function (represented using forward
@@ -724,11 +724,11 @@ rasterize_bezier_patch (unsigned char *data, int width, int height, int stride,
for (i = 0; i < 4; ++i) {
cstart[i] = col[0][i];
cend[i] = col[1][i];
- dcstart[i] = (col[2][i] - col[0][i]) / vsteps;
- dcend[i] = (col[3][i] - col[1][i]) / vsteps;
+ dcstart[i] = (col[2][i] - col[0][i]) / v;
+ dcend[i] = (col[3][i] - col[1][i]) / v;
}
- for (v = 0; v <= vsteps; ++v) {
+ while (v--) {
cairo_point_double_t nodes[4];
for (i = 0; i < 4; ++i) {
nodes[i].x = pv[i][0][0];