summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2013-04-07 21:42:54 +0200
committerkwolekr <kwolekr@minetest.net>2013-04-07 22:30:29 -0400
commit2bdff11d5472e4e5299c4e4e25e128b0869367a8 (patch)
tree7ba0c8d8cf9471691a7e7c97f91ad64e506b420c
parent7a32698312bcca7dc4e82de80df659418a2b5b3b (diff)
downloadminetest-2bdff11d5472e4e5299c4e4e25e128b0869367a8.tar.gz
minetest-2bdff11d5472e4e5299c4e4e25e128b0869367a8.tar.bz2
minetest-2bdff11d5472e4e5299c4e4e25e128b0869367a8.zip
fix memory leak on shader shutdown
-rw-r--r--src/shader.cpp6
-rw-r--r--src/shader.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/shader.cpp b/src/shader.cpp
index a224c82bb..62b7c99a9 100644
--- a/src/shader.cpp
+++ b/src/shader.cpp
@@ -388,6 +388,12 @@ ShaderSource::ShaderSource(IrrlichtDevice *device):
ShaderSource::~ShaderSource()
{
//m_shader_callback->drop();
+
+ for (std::vector<IShaderConstantSetter*>::iterator iter = m_global_setters.begin();
+ iter != m_global_setters.end(); iter++) {
+ delete *iter;
+ }
+ m_global_setters.clear();
}
u32 ShaderSource::getShaderId(const std::string &name)
diff --git a/src/shader.h b/src/shader.h
index a7367eaff..a62569602 100644
--- a/src/shader.h
+++ b/src/shader.h
@@ -49,6 +49,7 @@ struct ShaderInfo
video::E_MATERIAL_TYPE material;
ShaderInfo(): name(""), material(video::EMT_SOLID) {}
+ virtual ~ShaderInfo() {}
};
/*