Fix printraw causing infinite recursion in Logger._log_message

This commit is contained in:
Mikael Hermansson 2025-07-31 20:24:47 +02:00
parent 00a0512854
commit 494471dda2
3 changed files with 15 additions and 1 deletions

View file

@ -298,6 +298,19 @@ void __print_line_rich(const String &p_string) {
is_printing = false; is_printing = false;
} }
void print_raw(const String &p_string) {
if (is_printing) {
__print_fallback(p_string, true);
return;
}
is_printing = true;
OS::get_singleton()->print("%s", p_string.utf8().get_data());
is_printing = false;
}
void print_error(const String &p_string) { void print_error(const String &p_string) {
if (!CoreGlobals::print_error_enabled) { if (!CoreGlobals::print_error_enabled) {
return; return;

View file

@ -57,6 +57,7 @@ void remove_print_handler(const PrintHandlerList *p_handler);
extern void __print_line(const String &p_string); extern void __print_line(const String &p_string);
extern void __print_line_rich(const String &p_string); extern void __print_line_rich(const String &p_string);
extern void print_raw(const String &p_string);
extern void print_error(const String &p_string); extern void print_error(const String &p_string);
extern bool is_print_verbose_enabled(); extern bool is_print_verbose_enabled();

View file

@ -1011,7 +1011,7 @@ void VariantUtilityFunctions::prints(const Variant **p_args, int p_arg_count, Ca
} }
void VariantUtilityFunctions::printraw(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) { void VariantUtilityFunctions::printraw(const Variant **p_args, int p_arg_count, Callable::CallError &r_error) {
OS::get_singleton()->print("%s", join_string(p_args, p_arg_count).utf8().get_data()); print_raw(join_string(p_args, p_arg_count));
r_error.error = Callable::CallError::CALL_OK; r_error.error = Callable::CallError::CALL_OK;
} }