diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2008-10-07 09:43:45 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2008-10-07 22:16:07 +0100 |
commit | 6b8c0559620ab23c4df1f381d2e95ffc307d2e2f (patch) | |
tree | 93c23bc84ed77bb4a9ae11539c0eaa901fd05d2c /src/cairo-bentley-ottmann.c | |
parent | eaa4bd13926728e9da97a23df8a465ef2296049a (diff) | |
download | cairo-6b8c0559620ab23c4df1f381d2e95ffc307d2e2f.tar.gz |
[tessellator] Avoid implicit promotion to 64bit integer.
Avoid passing a 32bit integer as a cairo_int64_t in case we do not have a
64bit native integral type. As a side-effect this means we can also use a
narrower multiply.
Diffstat (limited to 'src/cairo-bentley-ottmann.c')
-rw-r--r-- | src/cairo-bentley-ottmann.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c index 47ee83387..b98cb6252 100644 --- a/src/cairo-bentley-ottmann.c +++ b/src/cairo-bentley-ottmann.c @@ -584,17 +584,17 @@ det32_64 (int32_t a, } static inline cairo_int128_t -det64_128 (cairo_int64_t a, - cairo_int64_t b, - cairo_int64_t c, - cairo_int64_t d) +det64x32_128 (cairo_int64_t a, + int32_t b, + cairo_int64_t c, + int32_t d) { cairo_int128_t ad; cairo_int128_t bc; /* det = a * d - b * c */ - ad = _cairo_int64x64_128_mul (a, d); - bc = _cairo_int64x64_128_mul (b, c); + ad = _cairo_int64x32_128_mul (a, d); + bc = _cairo_int64x32_128_mul (c, b); return _cairo_int128_sub (ad, bc); } @@ -636,8 +636,8 @@ intersect_lines (cairo_bo_edge_t *a, b->bottom.x, b->bottom.y); /* x = det (a_det, dx1, b_det, dx2) / den_det */ - qr = _cairo_int_96by64_32x64_divrem (det64_128 (a_det, dx1, - b_det, dx2), + qr = _cairo_int_96by64_32x64_divrem (det64x32_128 (a_det, dx1, + b_det, dx2), den_det); if (_cairo_int64_eq (qr.rem, den_det)) return CAIRO_BO_STATUS_NO_INTERSECTION; @@ -645,8 +645,8 @@ intersect_lines (cairo_bo_edge_t *a, intersection->x.exactness = qr.rem ? INEXACT : EXACT; /* y = det (a_det, dy1, b_det, dy2) / den_det */ - qr = _cairo_int_96by64_32x64_divrem (det64_128 (a_det, dy1, - b_det, dy2), + qr = _cairo_int_96by64_32x64_divrem (det64x32_128 (a_det, dy1, + b_det, dy2), den_det); if (_cairo_int64_eq (qr.rem, den_det)) return CAIRO_BO_STATUS_NO_INTERSECTION; |