You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue description:
When freeing joints with attachments that are freed after the bodies they connect, they will throw errors. It seems that it doesn't check if their collision exceptions are freed or not, before removing them.
I don't know the history of this prior issue, but it may mean this is a regression: #2383
Also, it may mean anything else that cleans up collision exceptions may do this also if freed in a particular order.
The trace.
godot.windows.tools.64.exe!RID_Owner<Body2DSW>::get(const RID & p_rid) Line 150 C++
godot.windows.tools.64.exe!Physics2DServerSW::body_remove_collision_exception(RID p_body, RID p_body_b) Line 965 C++
godot.windows.tools.64.exe!Physics2DServerSW::joint_disable_collisions_between_bodies(RID p_joint, const bool p_disable) Line 1131 C++
godot.windows.tools.64.exe!Physics2DServerWrapMT::joint_disable_collisions_between_bodies(RID p1, const bool p2) Line 282 C++
godot.windows.tools.64.exe!Joint2D::_update_joint(bool p_only_free) Line 43 C++
godot.windows.tools.64.exe!Joint2D::_notification(int p_what) Line 116 C++
godot.windows.tools.64.exe!Joint2D::_notificationv(int p_notification, bool p_reversed) Line 40 C++
godot.windows.tools.64.exe!PinJoint2D::_notificationv(int p_notification, bool p_reversed) Line 78 C++
godot.windows.tools.64.exe!Object::notification(int p_notification, bool p_reversed) Line 934 C++
godot.windows.tools.64.exe!Node::_propagate_exit_tree() Line 306 C++
godot.windows.tools.64.exe!Node::_set_tree(SceneTree * p_tree) Line 2553 C++
godot.windows.tools.64.exe!Node::remove_child(Node * p_child) Line 1264 C++
godot.windows.tools.64.exe!Node::_notification(int p_notification) Line 171 C++
godot.windows.tools.64.exe!Node::_notificationv(int p_notification, bool p_reversed) Line 46 C++
godot.windows.tools.64.exe!CanvasItem::_notificationv(int p_notification, bool p_reversed) Line 166 C++
godot.windows.tools.64.exe!Node2D::_notificationv(int p_notification, bool p_reversed) Line 38 C++
godot.windows.tools.64.exe!Joint2D::_notificationv(int p_notification, bool p_reversed) Line 40 C++
godot.windows.tools.64.exe!PinJoint2D::_notificationv(int p_notification, bool p_reversed) Line 78 C++
godot.windows.tools.64.exe!Object::notification(int p_notification, bool p_reversed) Line 934 C++
godot.windows.tools.64.exe!Object::_predelete() Line 388 C++
godot.windows.tools.64.exe!predelete_handler(Object * p_object) Line 2054 C++
godot.windows.tools.64.exe!memdelete<Object>(Object * p_class) Line 114 C++
godot.windows.tools.64.exe!SceneTree::_flush_delete_queue() Line 1112 C++
godot.windows.tools.64.exe!SceneTree::iteration(float p_time) Line 489 C++
godot.windows.tools.64.exe!Main::iteration() Line 2015 C++
godot.windows.tools.64.exe!OS_Windows::run() Line 3159 C++
godot.windows.tools.64.exe!widechar_main(int argc, wchar_t * * argv) Line 162 C++
godot.windows.tools.64.exe!_main() Line 184 C++
godot.windows.tools.64.exe!main(int _argc, char * * _argv) Line 196 C++
[External Code]
Steps to reproduce:
Have a pin joint where it's connections are freed just before it is freed. Minimal project demonstrates this with a button press.
Godot version:
8426ed2
OS/device including version:
Win10 64-bit
Issue description:
When freeing joints with attachments that are freed after the bodies they connect, they will throw errors. It seems that it doesn't check if their collision exceptions are freed or not, before removing them.
I don't know the history of this prior issue, but it may mean this is a regression: #2383
Also, it may mean anything else that cleans up collision exceptions may do this also if freed in a particular order.
The trace.
Steps to reproduce:
Have a pin joint where it's connections are freed just before it is freed. Minimal project demonstrates this with a button press.
Minimal reproduction project:
Pin Joint Errors.zip
The text was updated successfully, but these errors were encountered: