mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
a5f6e49862
`ClassDB::can_instantiate()` and other reflection methods deadlock if the type is an script global class, when such script indirectly uses a not-yet-registered class. The reason is the `ClassDB` read lock is still held when invoking the `ResourceLoader` to load the class script, which may in turn need to lock for writing (for the class registration). In particular, this happens with some types related to animation tree, that aren't registered at engine startup, but can happen with others, especially ones from the user. Registration statements are also added for the animation-related types that were lacking them. |
||
---|---|---|
.. | ||
2d | ||
3d | ||
animation | ||
audio | ||
debugger | ||
gui | ||
main | ||
resources | ||
theme | ||
property_list_helper.cpp | ||
property_list_helper.h | ||
property_utils.cpp | ||
property_utils.h | ||
register_scene_types.cpp | ||
register_scene_types.h | ||
scene_string_names.cpp | ||
scene_string_names.h | ||
SCsub |