From 7134ef90bbe71a2ffd52d29f473a0789dbaa41fb Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Tue, 7 Dec 2021 18:42:10 +0000 Subject: [PATCH] Fix leaking environment RIDs in GLES2 This PR adds the code necessary to correctly free environments in GLES2, which was previously missing causing them to leak. --- drivers/gles2/rasterizer_scene_gles2.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp index b3cb17914cb..50a87f76923 100644 --- a/drivers/gles2/rasterizer_scene_gles2.cpp +++ b/drivers/gles2/rasterizer_scene_gles2.cpp @@ -3875,6 +3875,7 @@ bool RasterizerSceneGLES2::free(RID p_rid) { shadow_atlas_set_size(p_rid, 0); shadow_atlas_owner.free(p_rid); memdelete(shadow_atlas); + } else if (reflection_probe_instance_owner.owns(p_rid)) { ReflectionProbeInstance *reflection_instance = reflection_probe_instance_owner.get(p_rid); @@ -3892,6 +3893,12 @@ bool RasterizerSceneGLES2::free(RID p_rid) { reflection_probe_instance_owner.free(p_rid); memdelete(reflection_instance); + } else if (environment_owner.owns(p_rid)) { + Environment *environment = environment_owner.get(p_rid); + + environment_owner.free(p_rid); + memdelete(environment); + } else { return false; }