Fix memory leaks in GenericCAO, ShaderSource and Player classes
This commit is contained in:
parent
3d6d66b181
commit
b8343cd11c
|
@ -670,6 +670,7 @@ GenericCAO::~GenericCAO()
|
|||
{
|
||||
m_env->removePlayerName(m_name.c_str());
|
||||
}
|
||||
removeFromScene(true);
|
||||
}
|
||||
|
||||
core::aabbox3d<f32>* GenericCAO::getSelectionBox()
|
||||
|
@ -735,7 +736,7 @@ ClientActiveObject* GenericCAO::getParent()
|
|||
|
||||
void GenericCAO::removeFromScene(bool permanent)
|
||||
{
|
||||
if(permanent) // Should be true when removing the object permanently and false when refreshing (eg: updating visuals)
|
||||
if((m_env != 0) && (permanent)) // Should be true when removing the object permanently and false when refreshing (eg: updating visuals)
|
||||
{
|
||||
for(std::vector<u16>::iterator ci = m_children.begin();
|
||||
ci != m_children.end(); ci++)
|
||||
|
|
|
@ -100,6 +100,7 @@ Player::Player(IGameDef *gamedef):
|
|||
|
||||
Player::~Player()
|
||||
{
|
||||
clearHud();
|
||||
}
|
||||
|
||||
// Horizontal acceleration (X and Z), Y direction is ignored
|
||||
|
|
|
@ -383,13 +383,16 @@ ShaderSource::ShaderSource(IrrlichtDevice *device):
|
|||
|
||||
ShaderSource::~ShaderSource()
|
||||
{
|
||||
//m_shader_callback->drop();
|
||||
|
||||
for (std::vector<IShaderConstantSetter*>::iterator iter = m_global_setters.begin();
|
||||
iter != m_global_setters.end(); iter++) {
|
||||
delete *iter;
|
||||
}
|
||||
m_global_setters.clear();
|
||||
|
||||
if (m_shader_callback) {
|
||||
m_shader_callback->drop();
|
||||
m_shader_callback = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
u32 ShaderSource::getShader(const std::string &name,
|
||||
|
|
Loading…
Reference in New Issue