From 4af287fc9c3ad5f58bfd226287254173fe288cde Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Thu, 10 Mar 2016 19:05:24 -0800 Subject: BGE: Fix memory leak in VBO code --- source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp | 5 +++++ source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source/gameengine') 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 VBOMap; + class RAS_StorageVBO : public RAS_IStorage { @@ -86,7 +88,7 @@ protected: RAS_IRasterizer::TexCoGen* m_attrib; int* m_attrib_layer; - std::map m_vbo_lookup; + VBOMap m_vbo_lookup; #ifdef WITH_CXX_GUARDEDALLOC public: -- cgit v1.2.3