Files
test2/source
Bastien Montagne f8cdd3e65f Fix (unreported) Depsgraph invalid C-style allocation of non-trivial C++ data.
`DEGCustomDataMeshMasks` makes `IDInfo` struct non-trivial, so it should
not be allocated or freed with C-style allocation.

Instead of allocating this data, now use its only persistent user
(the `DepsgraphNodeBuilder::id_info_hash_` map) as owner, move the rest
of the code releasing COW IDs to a new destructor for `IDInfo`, and let
standard C++ destruction do the job.

NOTE: This change seems to give some performances improvements in
affected code (e.g. about 4% improvement in affected area of
`DepsgraphNodeBuilder::begin_build`). However, this does not affect global
performances in a measurable way.

Related to work on improving our memory allocation code in !134463.

Pull Request: https://projects.blender.org/blender/blender/pulls/134563
2025-02-18 13:02:41 +01:00
..