summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2024-04-09 17:52:05 -0700
committerclayjohn <claynjohn@gmail.com>2024-04-09 17:52:05 -0700
commitbafbde9f4ba00f3d4b7cee2fd5456191294ba174 (patch)
tree9f55f56b356c5c1c154e8c7b11dc6695a762a029
parent6c579280630715ff7da8310d405ef34194847294 (diff)
downloadredot-engine-bafbde9f4ba00f3d4b7cee2fd5456191294ba174.tar.gz
Clear RIDs of weight buffers when freeing to avoid double free
-rw-r--r--servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp
index c5d74d395f..b7934cb3de 100644
--- a/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp
+++ b/servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp
@@ -130,9 +130,10 @@ void RenderSceneBuffersRD::cleanup() {
named_textures.clear();
// Clear weight_buffer / blur textures.
- for (const WeightBuffers &weight_buffer : weight_buffers) {
+ for (WeightBuffers &weight_buffer : weight_buffers) {
if (weight_buffer.weight.is_valid()) {
RD::get_singleton()->free(weight_buffer.weight);
+ weight_buffer.weight = RID();
}
}
}