diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2016-03-11 06:05:24 +0300 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2016-03-11 06:41:45 +0300 |
commit | 4af287fc9c3ad5f58bfd226287254173fe288cde (patch) | |
tree | 80a29ccf01c07211c088f60b23107e8af8ea3b01 /source/gameengine | |
parent | 11e4558313f73dc6837851c13959964548c4e61a (diff) |
BGE: Fix memory leak in VBO code
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp | 5 | ||||
-rw-r--r-- | source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h | 4 |
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: |