[Mesa-dev] [PATCH 09/37] mesa: Don't check for image->Data when freeing an image's contents.
Eric Anholt
eric at anholt.net
Mon Aug 15 11:53:39 PDT 2011
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);
- }
---
src/mesa/main/mipmap.c | 3 +--
src/mesa/main/teximage.c | 11 +++--------
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 611f375..cf9d522 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 8fdebad..886e521 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 c991da3..e53da5f 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,
--
1.7.5.4
More information about the mesa-dev
mailing list