diff options
author | Eric Anholt <[email protected]> | 2011-07-27 14:40:08 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2011-08-29 10:10:03 -0700 |
commit | 68f8cf72638e974a5bf2ae3e88c2e3539d88e2b6 (patch) | |
tree | 2b0ab3376ffadcf7281c6f9d122a5c4297610166 | |
parent | 5401590815b0ef095e7881bbabce233bab07c1e6 (diff) |
mesa: Don't check for image->Data when freeing an image's contents.
All driver implementations of FreeTextureImageBuffer already check
that Data != NULL and free it. However, this means that we will also
free driver storage if the driver storage wasn't in the form of a Data
pointer.
This was produced by the following semantic patch:
@@
expression C;
expression T;
@@
- if (T->Data) {
- C->Driver.FreeTextureImageBuffer(C, T);
+ C->Driver.FreeTextureImageBuffer(C, T);
- }
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/mesa/main/mipmap.c | 3 | ||||
-rw-r--r-- | src/mesa/main/teximage.c | 11 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_gen_mipmap.c | 3 |
3 files changed, 5 insertions, 12 deletions
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index 611f3755010..cf9d522f2f1 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -1948,8 +1948,7 @@ generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target, } /* Free old image data */ - if (dstImage->Data) - ctx->Driver.FreeTextureImageBuffer(ctx, dstImage); + ctx->Driver.FreeTextureImageBuffer(ctx, dstImage); /* initialize new image */ _mesa_init_teximage_fields(ctx, target, dstImage, dstWidth, dstHeight, diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 8fdebad1940..886e52114f2 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -2456,9 +2456,7 @@ teximage(struct gl_context *ctx, GLuint dims, else { gl_format texFormat; - if (texImage->Data) { - ctx->Driver.FreeTextureImageBuffer( ctx, texImage ); - } + ctx->Driver.FreeTextureImageBuffer(ctx, texImage); ASSERT(texImage->Data == NULL); texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, @@ -2597,8 +2595,7 @@ _mesa_EGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image) if (!texImage) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glEGLImageTargetTexture2D"); } else { - if (texImage->Data) - ctx->Driver.FreeTextureImageBuffer( ctx, texImage ); + ctx->Driver.FreeTextureImageBuffer(ctx, texImage); ASSERT(texImage->Data == NULL); ctx->Driver.EGLImageTargetTexture2D(ctx, target, @@ -3362,9 +3359,7 @@ compressedteximage(struct gl_context *ctx, GLuint dims, else { gl_format texFormat; - if (texImage->Data) { - ctx->Driver.FreeTextureImageBuffer( ctx, texImage ); - } + ctx->Driver.FreeTextureImageBuffer(ctx, texImage); ASSERT(texImage->Data == NULL); texFormat = _mesa_choose_texture_format(ctx, texObj, target, level, diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c index c991da36670..e53da5fd4ae 100644 --- a/src/mesa/state_tracker/st_gen_mipmap.c +++ b/src/mesa/state_tracker/st_gen_mipmap.c @@ -444,8 +444,7 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target, } /* Free old image data */ - if (dstImage->Data) - ctx->Driver.FreeTextureImageBuffer(ctx, dstImage); + ctx->Driver.FreeTextureImageBuffer(ctx, dstImage); /* initialize new image */ _mesa_init_teximage_fields(ctx, target, dstImage, dstWidth, dstHeight, |