Re: [PATCH 12/51] core: changed retval of _cairo_composite_rectangles_intersect() to cairo_bool_t

Bryce Harrington <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On Fri, Dec 18, 2015 at 02:28:51PM +0100, Enrico Weigelt, metux IT consult wrote:
> This function only has two possible return states - success and
> nothing to do. We just need 1 bit for that. Replacing the big enum
> by bool makes the code smaller and easier to understand (dont need to
> consider other possible values of cairo_int_state_t anymore)
> 
> The same applies to several callers - they'll be changed in subsequent patches.

Not a thorough review, but if switching to cairo_bool_t, then return
TRUE/FALSE rather than 0/1.
 
> Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
> ---
>  src/cairo-composite-rectangles.c | 40 ++++++++++++++++++++++++++--------------
>  1 file changed, 26 insertions(+), 14 deletions(-)
> 
> diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c
> index bc6e1f3..30c1b6e 100644
> --- a/src/cairo-composite-rectangles.c
> +++ b/src/cairo-composite-rectangles.c
> @@ -142,34 +142,34 @@ _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extent
>      return CAIRO_STATUS_SUCCESS;
>  }
>  
> -static cairo_int_status_t
> +static cairo_bool_t
>  _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents,
>  				       const cairo_clip_t *clip)
>  {
>      if ((!_cairo_rectangle_intersect (&extents->bounded, &extents->mask)) &&
>          (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK))
> -	return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	return 0;
>  
>      if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) {
>  	extents->unbounded = extents->bounded;
>      } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) {
>  	if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask))
> -	    return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	    return 0;
>      }
>  
>      extents->clip = _cairo_clip_reduce_for_composite (clip, extents);
>      if (_cairo_clip_is_all_clipped (extents->clip))
> -	return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	return 0;
>  
>      if (! _cairo_rectangle_intersect (&extents->unbounded,
>  				      _cairo_clip_get_extents (extents->clip)))
> -	return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	return 0;
>  
>      if (! _cairo_rectangle_intersect (&extents->bounded,
>  				      _cairo_clip_get_extents (extents->clip)) &&
>  	extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK)
>      {
> -	return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	return 0;
>      }
>  
>      if (extents->source_pattern.base.type != CAIRO_PATTERN_TYPE_SOLID)
> @@ -183,11 +183,11 @@ _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents,
>  	if (extents->mask_sample_area.width == 0 ||
>  	    extents->mask_sample_area.height == 0) {
>  	    _cairo_composite_rectangles_fini (extents);
> -	    return CAIRO_INT_STATUS_NOTHING_TO_DO;
> +	    return 0;
>  	}
>      }
>  
> -    return CAIRO_STATUS_SUCCESS;
> +    return 1;
>  }
>  
>  cairo_int_status_t
> @@ -332,7 +332,9 @@ _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents
>      _cairo_composite_reduce_pattern (mask, &extents->mask_pattern);
>      _cairo_pattern_get_extents (&extents->mask_pattern.base, &extents->mask);
>  
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_int_status_t
> @@ -353,7 +355,9 @@ _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *exten
>  
>      _cairo_path_fixed_approximate_stroke_extents (path, style, ctm, surface->is_vector, &extents->mask);
>  
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_int_status_t
> @@ -372,7 +376,9 @@ _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents
>  
>      _cairo_path_fixed_approximate_fill_extents (path, &extents->mask);
>  
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_int_status_t
> @@ -390,7 +396,9 @@ _cairo_composite_rectangles_init_for_polygon (cairo_composite_rectangles_t *exte
>      }
>  
>      _cairo_box_round_to_rectangle (&polygon->extents, &extents->mask);
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_int_status_t
> @@ -411,7 +419,9 @@ _cairo_composite_rectangles_init_for_boxes (cairo_composite_rectangles_t *extent
>  
>      _cairo_boxes_extents (boxes, &box);
>      _cairo_box_round_to_rectangle (&box, &extents->mask);
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_int_status_t
> @@ -456,7 +466,9 @@ _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *exten
>  	*overlap = FALSE;
>      }
>  
> -    return _cairo_composite_rectangles_intersect (extents, clip);
> +    return (_cairo_composite_rectangles_intersect (extents, clip) ?
> +	    CAIRO_INT_STATUS_SUCCESS :
> +	    CAIRO_INT_STATUS_NOTHING_TO_DO);
>  }
>  
>  cairo_bool_t
> -- 
> 2.6.4.442.g545299f
> 
> -- 
> cairo mailing list
> [email protected]
> http://lists.cairographics.org/mailman/listinfo/cairo
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.