[Mesa-dev] [PATCH 03/23] swrast: remove MAX_WIDTH arrays in s_zoom.c

Jose Fonseca jfonseca at vmware.com
Tue Feb 21 00:30:49 PST 2012


Shouldn't malloc be passed zoomedWidth instead of width?

Jose

----- Original Message -----
> From: Brian Paul <brianp at vmware.com>
> 
> ---
>  src/mesa/swrast/s_zoom.c |   16 ++++++++++++++--
>  1 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mesa/swrast/s_zoom.c b/src/mesa/swrast/s_zoom.c
> index 73bff48..ede8f90 100644
> --- a/src/mesa/swrast/s_zoom.c
> +++ b/src/mesa/swrast/s_zoom.c
> @@ -362,7 +362,7 @@ _swrast_write_zoomed_stencil_span(struct
> gl_context *ctx, GLint imgX, GLint imgY
>                                    GLint width, GLint spanX, GLint
>                                    spanY,
>                                    const GLubyte stencil[])
>  {
> -   GLubyte zoomedVals[MAX_WIDTH];
> +   GLubyte *zoomedVals;
>     GLint x0, x1, y0, y1, y;
>     GLint i, zoomedWidth;
>  
> @@ -375,6 +375,10 @@ _swrast_write_zoomed_stencil_span(struct
> gl_context *ctx, GLint imgX, GLint imgY
>     ASSERT(zoomedWidth > 0);
>     ASSERT(zoomedWidth <= MAX_WIDTH);
>  
> +   zoomedVals = (GLubyte *) malloc(width * sizeof(GLubyte));
> +   if (!zoomedVals)
> +      return;
> +
>     /* zoom the span horizontally */
>     for (i = 0; i < zoomedWidth; i++) {
>        GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - spanX;
> @@ -387,6 +391,8 @@ _swrast_write_zoomed_stencil_span(struct
> gl_context *ctx, GLint imgX, GLint imgY
>     for (y = y0; y < y1; y++) {
>        _swrast_write_stencil_span(ctx, zoomedWidth, x0, y,
>        zoomedVals);
>     }
> +
> +   free(zoomedVals);
>  }
>  
>  
> @@ -401,7 +407,7 @@ _swrast_write_zoomed_z_span(struct gl_context
> *ctx, GLint imgX, GLint imgY,
>  {
>     struct gl_renderbuffer *rb =
>        ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
> -   GLuint zoomedVals[MAX_WIDTH];
> +   GLuint *zoomedVals;
>     GLint x0, x1, y0, y1, y;
>     GLint i, zoomedWidth;
>  
> @@ -414,6 +420,10 @@ _swrast_write_zoomed_z_span(struct gl_context
> *ctx, GLint imgX, GLint imgY,
>     ASSERT(zoomedWidth > 0);
>     ASSERT(zoomedWidth <= MAX_WIDTH);
>  
> +   zoomedVals = (GLuint *) malloc(width * sizeof(GLuint));
> +   if (!zoomedVals)
> +      return;
> +
>     /* zoom the span horizontally */
>     for (i = 0; i < zoomedWidth; i++) {
>        GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - spanX;
> @@ -427,4 +437,6 @@ _swrast_write_zoomed_z_span(struct gl_context
> *ctx, GLint imgX, GLint imgY,
>        GLubyte *dst = _swrast_pixel_address(rb, x0, y);
>        _mesa_pack_uint_z_row(rb->Format, zoomedWidth, zoomedVals,
>        dst);
>     }
> +
> +   free(zoomedVals);
>  }
> --
> 1.7.3.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list