Fix memory leak found by vlj
This commit is contained in:
@@ -60,6 +60,8 @@ public:
|
||||
size_t getHeight() const { return height; }
|
||||
static void Blit(const FrameBuffer &Src, FrameBuffer &Dst, GLbitfield mask = GL_COLOR_BUFFER_BIT, GLenum filter = GL_NEAREST);
|
||||
void BlitToDefault(size_t, size_t, size_t, size_t);
|
||||
|
||||
LEAK_CHECK(FrameBuffer);
|
||||
};
|
||||
|
||||
class VertexUtils
|
||||
|
||||
@@ -55,6 +55,7 @@ QuadGraph::QuadGraph(const std::string &quad_file_name,
|
||||
m_mesh = NULL;
|
||||
m_mesh_buffer = NULL;
|
||||
m_lap_length = 0;
|
||||
m_new_rtt = NULL;
|
||||
QuadSet::create();
|
||||
QuadSet::get()->init(quad_file_name);
|
||||
m_quad_filename = quad_file_name;
|
||||
@@ -72,6 +73,8 @@ QuadGraph::~QuadGraph()
|
||||
}
|
||||
if(UserConfigParams::m_track_debug)
|
||||
cleanupDebugMesh();
|
||||
if (m_new_rtt != NULL)
|
||||
delete m_new_rtt;
|
||||
} // ~QuadGraph
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@@ -991,7 +994,7 @@ void QuadGraph::makeMiniMap(const core::dimension2du &dimension,
|
||||
IrrDriver::RTTProvider* oldRttProvider = NULL;
|
||||
if (irr_driver->isGLSL())
|
||||
{
|
||||
newRttProvider = new RTT(dimension.Width, dimension.Height);
|
||||
m_new_rtt = newRttProvider = new RTT(dimension.Width, dimension.Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1079,9 +1082,6 @@ void QuadGraph::makeMiniMap(const core::dimension2du &dimension,
|
||||
if (irr_driver->isGLSL())
|
||||
{
|
||||
frame_buffer = newRttProvider->render(camera, GUIEngine::getLatestDt());
|
||||
|
||||
// TODO: leak
|
||||
//delete newRttProvider;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace irr
|
||||
using namespace irr;
|
||||
|
||||
class CheckLine;
|
||||
class RTT;
|
||||
class FrameBuffer;
|
||||
|
||||
/**
|
||||
@@ -55,6 +56,8 @@ class QuadGraph : public NoCopy
|
||||
private:
|
||||
static QuadGraph *m_quad_graph;
|
||||
|
||||
RTT* m_new_rtt;
|
||||
|
||||
/** The actual graph data structure. */
|
||||
std::vector<GraphNode*> m_all_nodes;
|
||||
/** For debug mode only: the node of the debug mesh. */
|
||||
|
||||
@@ -352,8 +352,7 @@ void Track::cleanup()
|
||||
}
|
||||
if (m_new_rtt_mini_map)
|
||||
{
|
||||
delete m_new_rtt_mini_map;
|
||||
m_new_rtt_mini_map = NULL;
|
||||
m_new_rtt_mini_map = NULL; // already deleted by QuadGraph::~QuadGraph
|
||||
}
|
||||
|
||||
for(unsigned int i=0; i<m_sky_textures.size(); i++)
|
||||
|
||||
Reference in New Issue
Block a user