swrast: move null pointer check earlier in _swrast_map_teximage()
authorBrian Paul <brianp@vmware.com>
Wed, 23 Apr 2014 15:57:11 +0000 (09:57 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 24 Apr 2014 14:16:01 +0000 (08:16 -0600)
There's no reason to compute texel size, stride, etc. if there's no
image data to map.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/mesa/swrast/s_texture.c

index cbfa26b38c27e837d757fcc6a9a63eb57003e5b0..9273e94f94b6a98a28be0a384b53d4021cd20a0f 100644 (file)
@@ -218,6 +218,15 @@ _swrast_map_teximage(struct gl_context *ctx,
 
    check_map_teximage(texImage, slice, x, y, w, h);
 
+   if (!swImage->Buffer) {
+      /* Either glTexImage was called with a NULL <pixels> argument or
+       * we ran out of memory when allocating texture memory,
+       */
+      *mapOut = NULL;
+      *rowStrideOut = 0;
+      return;
+   }
+
    texelSize = _mesa_get_format_bytes(texImage->TexFormat);
    stride = _mesa_format_row_stride(texImage->TexFormat, texImage->Width);
    _mesa_get_format_block_size(texImage->TexFormat, &bw, &bh);
@@ -225,12 +234,6 @@ _swrast_map_teximage(struct gl_context *ctx,
    assert(x % bw == 0);
    assert(y % bh == 0);
 
-   if (!swImage->Buffer) {
-      /* probably ran out of memory when allocating tex mem */
-      *mapOut = NULL;
-      return;
-   }
-
    /* This function can only be used with a swrast-allocated buffer, in which
     * case ImageSlices is populated with pointers into Buffer.
     */