mesa: fix memory leak when generating mipmaps for compressed textures

This commit is contained in:
Brian Paul 2009-10-01 14:55:13 -06:00
parent 0574954238
commit 167ffa9e03

View file

@ -1510,7 +1510,9 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
/* Find convertFormat - the format that do_row() will process */
if (srcImage->IsCompressed) {
/* setup for compressed textures */
/* setup for compressed textures - need to allocate temporary
* image buffers to hold uncompressed images.
*/
GLuint row;
GLint components, size;
GLchan *dst;
@ -1587,11 +1589,7 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
&dstWidth, &dstHeight, &dstDepth);
if (!nextLevel) {
/* all done */
if (srcImage->IsCompressed) {
_mesa_free((void *) srcData);
_mesa_free(dstData);
}
return;
break;
}
/* get dest gl_texture_image */
@ -1682,6 +1680,12 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target,
}
} /* loop over mipmap levels */
if (srcImage->IsCompressed) {
/* free uncompressed image buffers */
_mesa_free((void *) srcData);
_mesa_free(dstData);
}
}