[Bf-blender-cvs] [4af287f] master: BGE: Fix memory leak in VBO code

Mitchell Stokes noreply at git.blender.org
Fri Mar 11 04:45:25 CET 2016


Commit: 4af287fc9c3ad5f58bfd226287254173fe288cde
Author: Mitchell Stokes
Date:   Thu Mar 10 19:05:24 2016 -0800
Branches: master
https://developer.blender.org/rB4af287fc9c3ad5f58bfd226287254173fe288cde

BGE: Fix memory leak in VBO code

===================================================================

M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h

===================================================================

diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
index 08d27cb..cad5b5a 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
@@ -193,6 +193,11 @@ bool RAS_StorageVBO::Init()
 
 void RAS_StorageVBO::Exit()
 {
+	VBOMap::iterator it = m_vbo_lookup.begin();
+	while (it != m_vbo_lookup.end()) {
+		delete it->second;
+		++it;
+	}
 	m_vbo_lookup.clear();
 }
 
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h
index f78faa9..9cb3449 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h
@@ -62,6 +62,8 @@ private:
 	void*			uv_offset;
 };
 
+typedef std::map<RAS_DisplayArray*, VBO*> VBOMap;
+
 class RAS_StorageVBO : public RAS_IStorage
 {
 
@@ -86,7 +88,7 @@ protected:
 	RAS_IRasterizer::TexCoGen*		m_attrib;
 	int*			                m_attrib_layer;
 
-	std::map<RAS_DisplayArray*, class VBO*>	m_vbo_lookup;
+	VBOMap			m_vbo_lookup;
 
 #ifdef WITH_CXX_GUARDEDALLOC
 public:




More information about the Bf-blender-cvs mailing list