[Glamor] [PATCH 1/3] Fix _glamor_set_spans() bug (re-used 'n' variable)

Zhigang Gong zhigang.gong at gmail.com
Thu Oct 31 14:07:11 CET 2013


The whole series are LGTM, pushed, thanks for your contribution.

On Sat, Oct 19, 2013 at 04:10:52PM -0600, Brian Paul wrote:
> From: Brian Paul <brianp at vmware.com>
> 
> n was used as a function parameter.  But inside the for (i=1..n) loop,
> n got reassigned as REGION_NUM_RECTS() and then decremented to zero by
> the while loop.  This caused the for loop to only iterate once instead
> of 'n' times.
> 
> This patch renames the n parameter to numPoints.
> 
> Found by code inspection.  Untested.
> ---
>  src/glamor_setspans.c |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/glamor_setspans.c b/src/glamor_setspans.c
> index a71efe9..3d447b6 100644
> --- a/src/glamor_setspans.c
> +++ b/src/glamor_setspans.c
> @@ -30,7 +30,7 @@
>  
>  static Bool
>  _glamor_set_spans(DrawablePtr drawable, GCPtr gc, char *src,
> -		 DDXPointPtr points, int *widths, int n, int sorted,
> +		 DDXPointPtr points, int *widths, int numPoints, int sorted,
>  		 Bool fallback)
>  {
>  	PixmapPtr dest_pixmap = glamor_get_drawable_pixmap(drawable);
> @@ -53,9 +53,9 @@ _glamor_set_spans(DrawablePtr drawable, GCPtr gc, char *src,
>  		goto fail;
>  
>  	glamor_get_drawable_deltas(drawable, dest_pixmap, &x_off, &y_off);
> -	for (i = 0; i < n; i++) {
> +	for (i = 0; i < numPoints; i++) {
>  
> -		n = REGION_NUM_RECTS(clip);
> +		int n = REGION_NUM_RECTS(clip);
>  		pbox = REGION_RECTS(clip);
>  		while (n--) {
>  			int x1 = points[i].x;
> @@ -85,7 +85,7 @@ fail:
>  	glamor_fallback("to %p (%c)\n",
>  			drawable, glamor_get_drawable_location(drawable));
>  	if (glamor_prepare_access(drawable, GLAMOR_ACCESS_RW)) {
> -		fbSetSpans(drawable, gc, src, points, widths, n, sorted);
> +		fbSetSpans(drawable, gc, src, points, widths, numPoints, sorted);
>  		glamor_finish_access(drawable, GLAMOR_ACCESS_RW);
>  	}
>  	ret = TRUE;
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Glamor mailing list
> Glamor at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/glamor


More information about the Glamor mailing list