diff options
author | Brian Paul <[email protected]> | 2014-04-23 09:57:11 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2014-04-24 08:16:01 -0600 |
commit | 1a7fa8b2ebad2e07f57a430c8c77558bb07b0151 (patch) | |
tree | 872d15030304aceed0007e02b2eab7ccdcfe1f09 /src/mesa/swrast/s_texture.c | |
parent | 5e81e6e268a4bdfa0017f9e340101c1d5696aea3 (diff) |
swrast: move null pointer check earlier in _swrast_map_teximage()
There's no reason to compute texel size, stride, etc. if there's no
image data to map.
Reviewed-by: José Fonseca <[email protected]>
Diffstat (limited to 'src/mesa/swrast/s_texture.c')
-rw-r--r-- | src/mesa/swrast/s_texture.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mesa/swrast/s_texture.c b/src/mesa/swrast/s_texture.c index cbfa26b38c2..9273e94f94b 100644 --- a/src/mesa/swrast/s_texture.c +++ b/src/mesa/swrast/s_texture.c @@ -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. */ |