On 12/06/2011 12:07 PM, Eric Anholt wrote:
On Mon,  5 Dec 2011 20:43:17 -0700, Brian Paul<bri...@vmware.com>  wrote:
diff --git a/src/mesa/swrast/s_zoom.c b/src/mesa/swrast/s_zoom.c
index 16bb997..e832121 100644
--- a/src/mesa/swrast/s_zoom.c
+++ b/src/mesa/swrast/s_zoom.c
@@ -299,11 +299,17 @@ zoom_span( struct gl_context *ctx, GLint imgX, GLint 
imgY, const SWspan *span,
         * Also, clipping may change the span end value, so store it as well.
         */
        const GLint end = zoomed.end; /* save */
-      GLuint rgbaSave[MAX_WIDTH][4];
+      void *rgbaSave;
        const GLint pixelSize =
           (zoomed.array->ChanType == GL_UNSIGNED_BYTE) ? 4 * sizeof(GLubyte) :
           ((zoomed.array->ChanType == GL_UNSIGNED_SHORT) ? 4 * sizeof(GLushort)
            : 4 * sizeof(GLfloat));
+
+      rgbaSave = malloc(zoomed.end * MAX_PIXEL_BYTES);
+      if (!rgbaSave) {
+         return;
+      }
+
        if (y1 - y0>  1) {
           memcpy(rgbaSave, zoomed.array->rgba, zoomed.end * pixelSize);
        }
@@ -315,6 +321,8 @@ zoom_span( struct gl_context *ctx, GLint imgX, GLint imgY, 
const SWspan *span,
              memcpy(zoomed.array->rgba, rgbaSave, zoomed.end * pixelSize);
           }
        }
+
+      free(rgbaSave);
     }
  }

You've got that pixelSize value right there, let's use that instead of
MAX_PIXEL_BYTES.

Good point, since I'm already using that as the size to the memcpy() calls - duh.

-Brian

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to