Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Stokes <mogurijin@gmail.com>2016-03-11 06:05:24 +0300
committerMitchell Stokes <mogurijin@gmail.com>2016-03-11 06:41:45 +0300
commit4af287fc9c3ad5f58bfd226287254173fe288cde (patch)
tree80a29ccf01c07211c088f60b23107e8af8ea3b01 /source/gameengine
parent11e4558313f73dc6837851c13959964548c4e61a (diff)
BGE: Fix memory leak in VBO code
Diffstat (limited to 'source/gameengine')
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp5
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h4
2 files changed, 8 insertions, 1 deletions
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
index 08d27cbc3fc..cad5b5a508e 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 f78faa97b16..9cb3449bed5 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: