1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Merge pull request #57904 from V-Sekai/fix_double_free_warning

Fixes some 'Attempted to free invalid ID' warnings in mobile renderer
This commit is contained in:
Rémi Verschelde
2022-02-15 08:30:44 +01:00
committed by GitHub

View File

@@ -1818,6 +1818,8 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
if (rb->blur[i].mipmaps[m].fb.is_valid()) { if (rb->blur[i].mipmaps[m].fb.is_valid()) {
RD::get_singleton()->free(rb->blur[i].mipmaps[m].fb); RD::get_singleton()->free(rb->blur[i].mipmaps[m].fb);
} }
// texture and framebuffer in both blur mipmaps are shared, so only free from the first one
if (i == 0) {
if (rb->blur[i].mipmaps[m].half_fb.is_valid()) { if (rb->blur[i].mipmaps[m].half_fb.is_valid()) {
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb); RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_fb);
} }
@@ -1825,6 +1827,7 @@ void RendererSceneRenderRD::_free_render_buffer_data(RenderBuffers *rb) {
RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_texture); RD::get_singleton()->free(rb->blur[i].mipmaps[m].half_texture);
} }
} }
}
rb->blur[i].mipmaps.clear(); rb->blur[i].mipmaps.clear();
if (rb->blur[i].texture.is_valid()) { if (rb->blur[i].texture.is_valid()) {