From 35f19bc084792bbad42b86a399103ebfbf407d05 Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Wed, 31 Mar 2010 12:18:01 +0200 Subject: [PATCH] pattern: Fix _gradient_is_opaque() for zero stops _gradient_is_opaque() previously returned TRUE for gradient with no stops, triggering a false optimization in _cairo_gstate_mask(). Fixes test/gradient-zero-stops-mask Reviewed-by: Chris Wilson --- src/cairo-pattern.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c index a1c8162c5..8ae4b819b 100644 --- a/src/cairo-pattern.c +++ b/src/cairo-pattern.c @@ -1795,6 +1795,9 @@ _gradient_is_opaque (const cairo_gradient_pattern_t *gradient) { unsigned int i; + if (gradient->n_stops == 0) + return FALSE; + for (i = 0; i < gradient->n_stops; i++) if (! CAIRO_COLOR_IS_OPAQUE (&gradient->stops[i].color)) return FALSE;