Skip to content

Commit 14eee2b

Browse files
committed
Merge pull request #97240 from KoBeWi/wrong_number
Print error on invalid `call_group()` calls
2 parents 0c3ff56 + 22ccfc5 commit 14eee2b

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

scene/main/scene_tree.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,15 @@ void SceneTree::call_group_flagsp(uint32_t p_call_flags, const StringName &p_gro
302302
continue;
303303
}
304304

305+
Node *node = gr_nodes[i];
305306
if (!(p_call_flags & GROUP_CALL_DEFERRED)) {
306307
Callable::CallError ce;
307-
gr_nodes[i]->callp(p_function, p_args, p_argcount, ce);
308+
node->callp(p_function, p_args, p_argcount, ce);
309+
if (unlikely(ce.error != Callable::CallError::CALL_OK && ce.error != Callable::CallError::CALL_ERROR_INVALID_METHOD)) {
310+
ERR_PRINT(vformat("Error calling group method on node \"%s\": %s.", node->get_name(), Variant::get_callable_error_text(Callable(node, p_function), p_args, p_argcount, ce)));
311+
}
308312
} else {
309-
MessageQueue::get_singleton()->push_callp(gr_nodes[i], p_function, p_args, p_argcount);
313+
MessageQueue::get_singleton()->push_callp(node, p_function, p_args, p_argcount);
310314
}
311315
}
312316

@@ -316,11 +320,15 @@ void SceneTree::call_group_flagsp(uint32_t p_call_flags, const StringName &p_gro
316320
continue;
317321
}
318322

323+
Node *node = gr_nodes[i];
319324
if (!(p_call_flags & GROUP_CALL_DEFERRED)) {
320325
Callable::CallError ce;
321-
gr_nodes[i]->callp(p_function, p_args, p_argcount, ce);
326+
node->callp(p_function, p_args, p_argcount, ce);
327+
if (unlikely(ce.error != Callable::CallError::CALL_OK && ce.error != Callable::CallError::CALL_ERROR_INVALID_METHOD)) {
328+
ERR_PRINT(vformat("Error calling group method on node \"%s\": %s.", node->get_name(), Variant::get_callable_error_text(Callable(node, p_function), p_args, p_argcount, ce)));
329+
}
322330
} else {
323-
MessageQueue::get_singleton()->push_callp(gr_nodes[i], p_function, p_args, p_argcount);
331+
MessageQueue::get_singleton()->push_callp(node, p_function, p_args, p_argcount);
324332
}
325333
}
326334
}

0 commit comments

Comments
 (0)