GlitterX: Fixed memory leaks caused by missing deallocation after use
This commit is contained in:
@@ -46,8 +46,8 @@ namespace Glitter {
|
||||
}
|
||||
|
||||
if (farc) {
|
||||
farc = 0;
|
||||
delete farc;
|
||||
farc = 0;
|
||||
}
|
||||
|
||||
if (resource_hashes) {
|
||||
|
||||
@@ -1251,7 +1251,7 @@ namespace Glitter {
|
||||
void Copy(RenderGroupX* dst);
|
||||
void Ctrl(float_t delta_frame, bool copy_mats);
|
||||
void CtrlParticle(RenderElementX* rend_elem, float_t delta_frame);
|
||||
void DeleteBuffers(bool a2);
|
||||
void DeleteBuffers(bool free);
|
||||
void Emit(ParticleX::Data* ptcl_data,
|
||||
EmitterInstX* emit_inst, int32_t dup_count, int32_t count, float_t frame);
|
||||
void Free();
|
||||
|
||||
@@ -360,11 +360,11 @@ namespace Glitter {
|
||||
rend_elem->frame -= rend_elem->life_time;
|
||||
}
|
||||
|
||||
void RenderGroupX::DeleteBuffers(bool a2) {
|
||||
void RenderGroupX::DeleteBuffers(bool free) {
|
||||
ParticleX* ptcl = 0;
|
||||
if (particle) {
|
||||
ptcl = particle->data.particle;
|
||||
if (!a2)
|
||||
if (!free)
|
||||
particle->data.render_group = 0;
|
||||
particle = 0;
|
||||
}
|
||||
@@ -379,9 +379,13 @@ namespace Glitter {
|
||||
ptcl->buffer_used = false;
|
||||
#endif
|
||||
|
||||
if (!a2 && elements) {
|
||||
if (!free && elements) {
|
||||
Free();
|
||||
free_def(elements);
|
||||
|
||||
if (elements) {
|
||||
delete[] elements;
|
||||
elements = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1020,7 +1020,8 @@ namespace Glitter {
|
||||
}
|
||||
|
||||
RenderSceneX::~RenderSceneX() {
|
||||
|
||||
for (RenderGroupX*& i : groups)
|
||||
delete i;
|
||||
}
|
||||
|
||||
void RenderSceneX::Append(RenderGroupX* rend_group) {
|
||||
|
||||
Reference in New Issue
Block a user