Skip to content

Commit

Permalink
Fix node.duplicate, return nullptr if this operation fails.
Browse files Browse the repository at this point in the history
  • Loading branch information
RadiantUwU committed Aug 2, 2024
1 parent 607b230 commit 70f41e4
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion scene/main/node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2783,9 +2783,11 @@ Node *Node::duplicate(int p_flags) const {
ERR_THREAD_GUARD_V(nullptr);
Node *dupe = _duplicate(p_flags);

ERR_FAIL_NULL_V_MSG(dupe, nullptr, "Failed to duplicate node.");

_duplicate_properties(this, this, dupe, p_flags);

if (dupe && (p_flags & DUPLICATE_SIGNALS)) {
if (p_flags & DUPLICATE_SIGNALS) {
_duplicate_signals(this, dupe);
}

Expand All @@ -2801,6 +2803,8 @@ Node *Node::duplicate_from_editor(HashMap<const Node *, Node *> &r_duplimap, con
int flags = DUPLICATE_SIGNALS | DUPLICATE_GROUPS | DUPLICATE_SCRIPTS | DUPLICATE_USE_INSTANTIATION | DUPLICATE_FROM_EDITOR;
Node *dupe = _duplicate(flags, &r_duplimap);

ERR_FAIL_NULL_V_MSG(dupe, nullptr, "Failed to duplicate node.");

_duplicate_properties(this, this, dupe, flags);

// This is used by SceneTreeDock's paste functionality. When pasting to foreign scene, resources are duplicated.
Expand Down

0 comments on commit 70f41e4

Please sign in to comment.