Mesa (13.0): r600/sb: Fix memory leak

Emil Velikov evelikov at kemper.freedesktop.org
Mon Feb 20 11:48:11 UTC 2017


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

Author: Bartosz Tomczyk <bartosz.tomczyk86 at gmail.com>
Date:   Sun Jan 29 19:10:25 2017 +0100

r600/sb: Fix memory leak

Signed-off-by: Marek Olšák <marek.olsak at amd.com>
(cherry picked from commit 94262e5f5db1f5c7865ced251c440bc5f3f4a89d)
Fixes: e933246013ee ("r600/sb: Fix loop optimization related hangs on eg")
Nominated-by: Andreas Boll <andreas.boll.dev at gmail.com>

---

 src/gallium/drivers/r600/sb/sb_valtable.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/sb/sb_valtable.cpp b/src/gallium/drivers/r600/sb/sb_valtable.cpp
index a8b7b49..d31a1b7 100644
--- a/src/gallium/drivers/r600/sb/sb_valtable.cpp
+++ b/src/gallium/drivers/r600/sb/sb_valtable.cpp
@@ -241,6 +241,7 @@ void value::remove_use(const node *n) {
 	{
 		// TODO assert((*it)->kind == kind) ?
 		// TODO assert((*it)->arg == arg) ?
+		delete *it;
 		uses.erase(it);
 	}
 }
@@ -290,7 +291,12 @@ bool value::is_prealloc() {
 }
 
 void value::delete_uses() {
-	uses.erase(uses.begin(), uses.end());
+	for (uselist::iterator it = uses.begin(); it != uses.end(); ++it)
+	{
+		delete *it;
+	}
+
+	uses.clear();
 }
 
 void ra_constraint::update_values() {




More information about the mesa-commit mailing list