Page MenuHome

Memory leak in boolean fast solver collection mode
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-5.10.22-200.fc33.x86_64-x86_64-with-glibc2.32 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.56

Blender Version
Broken: version: 2.93.0 Alpha, branch: latest master
Worked: The code looks the same as when the feature was added

Short description of error
Using the fast solver for the boolean modifier in collection mode will leak memory.

Exact steps for others to reproduce the error
While working on rBa0e1080428abb991c I discovered this issue with the fast boolean mode.
For every operand object except the last, the boolean modifier in fast mode leaks a newly created Mesh object on every evaluation.

FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN (collection, operand_ob) {
  if (operand_ob->type == OB_MESH && operand_ob != ctx->object) {
      ...
      result = BKE_mesh_from_bmesh_for_eval_nomain(bm, nullptr, mesh);
      BM_mesh_free(bm);
      result->runtime.cd_dirty_vert |= CD_MASK_NORMAL;
  }
}

Related commits:
rBab7608af1bd4: Apply patch D8816, from Zachary(AFWS) for collection boolean operand.
rBc271600101a2: Fix T82089 Boolean on empty mesh with collection fails.

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Apr 2 2021, 5:25 PM
Hans Goudey (HooglyBoogly) created this task.
Hans Goudey (HooglyBoogly) changed the subtype of this task from "Report" to "Bug".
Hans Goudey (HooglyBoogly) updated the task description. (Show Details)
Hans Goudey (HooglyBoogly) renamed this task from Memory leak in fast solver boolean collection mode to Memory leak in boolean fast solver collection mode.Apr 2 2021, 9:40 PM