From 71474da5fdbf2dff32fc80fc59418595c4178af2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 2 Jan 2024 16:17:53 +0100 Subject: [PATCH] Fix RNG memory leak on various error conditions This memory leak shows up in the flaky blendfile_versioning test, and this may help fix it. --- source/blender/blenkernel/intern/cloth.cc | 1 + source/blender/blenkernel/intern/particle_system.cc | 1 + source/blender/blenlib/tests/BLI_delaunay_2d_test.cc | 1 + 3 files changed, 3 insertions(+) diff --git a/source/blender/blenkernel/intern/cloth.cc b/source/blender/blenkernel/intern/cloth.cc index 20beed8c508..d2916bf4fa3 100644 --- a/source/blender/blenkernel/intern/cloth.cc +++ b/source/blender/blenkernel/intern/cloth.cc @@ -1565,6 +1565,7 @@ static bool cloth_build_springs(ClothModifierData *clmd, Mesh *mesh) if (tmp_mesh) { BKE_id_free(nullptr, &tmp_mesh->id); } + BLI_rng_free(rng); return false; } } diff --git a/source/blender/blenkernel/intern/particle_system.cc b/source/blender/blenkernel/intern/particle_system.cc index 32d5c0c1b17..7db3acb254a 100644 --- a/source/blender/blenkernel/intern/particle_system.cc +++ b/source/blender/blenkernel/intern/particle_system.cc @@ -4353,6 +4353,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, BLI_snprintf(debugStrBuffer, sizeof(debugStrBuffer), "particles_fluid_step::error - unknown particle system type\n"); + BLI_rng_free(sim->rng); return; } # if 0 diff --git a/source/blender/blenlib/tests/BLI_delaunay_2d_test.cc b/source/blender/blenlib/tests/BLI_delaunay_2d_test.cc index 6485499e5da..0d245043fe8 100644 --- a/source/blender/blenlib/tests/BLI_delaunay_2d_test.cc +++ b/source/blender/blenlib/tests/BLI_delaunay_2d_test.cc @@ -2086,6 +2086,7 @@ void rand_delaunay_test(int test_kind, } default: std::cout << "unknown delaunay test type\n"; + BLI_rng_free(rng); return; } if (otype != CDT_FULL) {