summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-07-27 14:40:08 -0700
committerEric Anholt <eric@anholt.net>2011-08-29 10:10:03 -0700
commit68f8cf72638e974a5bf2ae3e88c2e3539d88e2b6 (patch)
tree2b0ab3376ffadcf7281c6f9d122a5c4297610166
parent5401590815b0ef095e7881bbabce233bab07c1e6 (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 <brianp@vmware.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
-rw-r--r--src/mesa/main/mipmap.c3
-rw-r--r--src/mesa/main/teximage.c11
-rw-r--r--src/mesa/state_tracker/st_gen_mipmap.c3
3 files changed, 5 insertions, 12 deletions
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index 611f375501..cf9d522f2f 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 8fdebad194..886e52114f 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 c991da3667..e53da5fd4a 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,