Branch: refs/heads/master
Home: https://github.com/synfig/synfig
Commit: d0dba5bd7aaa2ec3008b26050a0f73565d986b04
https://github.com/synfig/synfig/commit/d0dba5bd7aaa2ec3008b26050a0f73565d986b04
Author: ice0 <[email protected]>
Date: 2023-03-27 (Mon, 27 Mar 2023)
Changed paths:
M synfig-core/src/synfig/valuenodes/valuenode_bone.cpp
Log Message:
-----------
fix: a crash on program exit if bones were used (#3037)
`ValueNode_Bone_Root` does not have a GUID and does not belong to
any canvas. Calling `get_guid()` for `ValueNode_Bone_Root` leads to
an attempt to insert it into a canvas (it calls `global_node_map()` for
this purpose).
And if `global_node_map()` is already destroyed at that moment, it
leads to a crash.
Since `ValueNode_Bone_Root` is also a static variable, it can be
destroyed later than `global_node_map()`.
I moved this variable inside `get_root_bone()` method, which changed
the initialization and destruction order.
I also added a check for `is_root()` for more correct behavior.
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl