From b02dff6e1c6df8c3dd2fda518e4d5e3a4df28b15 Mon Sep 17 00:00:00 2001 From: Markus Sauermann <6299227+Sauermann@users.noreply.github.com> Date: Thu, 29 Jun 2023 20:21:37 +0200 Subject: [PATCH] Fix `Node::add_sibling` parent check Replace `data.blocked > 0` by `data.parent->data.blocked > 0` in order to check if the parent is busy. --- scene/main/node.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 9ebd8f00a83..3715c06a33f 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1403,9 +1403,9 @@ void Node::add_child(Node *p_child, bool p_force_readable_name, InternalMode p_i void Node::add_sibling(Node *p_sibling, bool p_force_readable_name) { ERR_FAIL_COND_MSG(data.inside_tree && !Thread::is_main_thread(), "Adding a sibling to a node inside the SceneTree is only allowed from the main thread. Use call_deferred(\"add_sibling\",node)."); ERR_FAIL_NULL(p_sibling); - ERR_FAIL_NULL(data.parent); ERR_FAIL_COND_MSG(p_sibling == this, vformat("Can't add sibling '%s' to itself.", p_sibling->get_name())); // adding to itself! - ERR_FAIL_COND_MSG(data.blocked > 0, "Parent node is busy setting up children, `add_sibling()` failed. Consider using `add_sibling.call_deferred(sibling)` instead."); + ERR_FAIL_NULL(data.parent); + ERR_FAIL_COND_MSG(data.parent->data.blocked > 0, "Parent node is busy setting up children, `add_sibling()` failed. Consider using `add_sibling.call_deferred(sibling)` instead."); data.parent->add_child(p_sibling, p_force_readable_name, data.internal_mode); data.parent->_update_children_cache();