diff --git a/src/DivaGL/Glitter/file_reader.cpp b/src/DivaGL/Glitter/file_reader.cpp index 4a47552..c8ae515 100644 --- a/src/DivaGL/Glitter/file_reader.cpp +++ b/src/DivaGL/Glitter/file_reader.cpp @@ -46,8 +46,8 @@ namespace Glitter { } if (farc) { - farc = 0; delete farc; + farc = 0; } if (resource_hashes) { diff --git a/src/DivaGL/Glitter/glitter.hpp b/src/DivaGL/Glitter/glitter.hpp index d2d3808..fdd8f90 100644 --- a/src/DivaGL/Glitter/glitter.hpp +++ b/src/DivaGL/Glitter/glitter.hpp @@ -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(); diff --git a/src/DivaGL/Glitter/render_group.cpp b/src/DivaGL/Glitter/render_group.cpp index 62df6bd..5d8a57e 100644 --- a/src/DivaGL/Glitter/render_group.cpp +++ b/src/DivaGL/Glitter/render_group.cpp @@ -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; + } } } diff --git a/src/DivaGL/Glitter/render_scene.cpp b/src/DivaGL/Glitter/render_scene.cpp index 2a8120a..a6716ac 100644 --- a/src/DivaGL/Glitter/render_scene.cpp +++ b/src/DivaGL/Glitter/render_scene.cpp @@ -1020,7 +1020,8 @@ namespace Glitter { } RenderSceneX::~RenderSceneX() { - + for (RenderGroupX*& i : groups) + delete i; } void RenderSceneX::Append(RenderGroupX* rend_group) {