f6ec11741c33912db41af566e0efe51020b5d37a
The main challenge is to avoid dangling pointers. Currently, the lifetime of socket declarations is somewhat unbounded (at least we didn't restrict it explicitly yet). Therefore, storing non-owning pointers in it tricky. For ID pointers one could potentially use the foreach-id iterator to update pointers in declarations as well, but that's a bit out of scope and might not be the right solution anyway, since it's not obvious that all node declarations are reachable from IDs stored in `bmain`. The solution now is to use a callback that retrieves the right ID pointer when it is used. The important thing is that the callback does not capture any potentially dangling pointer either. Pull Request: https://projects.blender.org/blender/blender/pulls/107179
…
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%
