Mesa (master): nv50: plug memory leak in miptree creation/destruction

Christoph Bumiller chrisbmr at kemper.freedesktop.org
Sat Dec 12 09:54:26 PST 2009


Module: Mesa
Branch: master
Commit: 9f3644c42350fec2cda17e66548c517d9d00e47f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f3644c42350fec2cda17e66548c517d9d00e47f

Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date:   Fri Dec  4 23:16:32 2009 +0100

nv50: plug memory leak in miptree creation/destruction

Keeping this dynamically allocated for texture arrays.
Since we don't use it to store zslice offsets anymore
it's either 1 or 6 integers (cube) ...

---

 src/gallium/drivers/nv50/nv50_miptree.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/nv50/nv50_miptree.c b/src/gallium/drivers/nv50/nv50_miptree.c
index 40ee665..795db58 100644
--- a/src/gallium/drivers/nv50/nv50_miptree.c
+++ b/src/gallium/drivers/nv50/nv50_miptree.c
@@ -130,6 +130,8 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)
 				  mt->level[0].tile_mode, tile_flags,
 				  &mt->base.bo);
 	if (ret) {
+		for (l = 0; l < pt->last_level; ++l)
+			FREE(mt->level[l].image_offset);
 		FREE(mt);
 		return NULL;
 	}
@@ -169,6 +171,10 @@ static void
 nv50_miptree_destroy(struct pipe_texture *pt)
 {
 	struct nv50_miptree *mt = nv50_miptree(pt);
+	unsigned l;
+
+	for (l = 0; l < pt->last_level; ++l)
+		FREE(mt->level[l].image_offset);
 
 	nouveau_bo_ref(NULL, &mt->base.bo);
 	FREE(mt);



More information about the mesa-commit mailing list