@@ -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