소스 검색

Clear RIDs of weight buffers when freeing to avoid double free

(cherry picked from commit bafbde9f4ba00f3d4b7cee2fd5456191294ba174)
clayjohn 1 년 전
부모
커밋
4cffca7fbc
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp

+ 2 - 1
servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp

@@ -127,9 +127,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();
 		}
 	}
 }