25bdaf026c91cd02594f5ceb46d8e102d81d3d69
When baking custom properties, avoid keeping references to custom property values that are known to be impossible to animate anyway. The crash was caused by custom properties containing collections of ID properties. Keeping Python references around for too long and then accessing them caused Blender to crash. My solution is to only keep track of custom property values that might be keyable. For some this is certain: floats, ints, bools are keyable, whereas lists, dicts, etc. are not. However, strings can be the RNA value for an enum property, which is keyed via its integer representation. So, the new function `can_be_keyed()` can return `True`, `False`, or `None`. By skipping those values where it returns `False` the crash is already resolved, making it good enough for now. Pull Request: https://projects.blender.org/blender/blender/pulls/117993
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
