From f7de51b3a6bc191cd0d79c1079889fb7a104b504 Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Tue, 9 Jan 2018 22:27:55 +0100 Subject: Mono: Some fixes for #15463 --- modules/mono/mono_gd/gd_mono_utils.cpp | 6 +++--- modules/mono/mono_gd/gd_mono_utils.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'modules/mono/mono_gd') diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index 4aa2c007c2..d02c73978e 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -399,7 +399,7 @@ void print_unhandled_exception(MonoObject *p_exc) { print_unhandled_exception(p_exc, false); } -void print_unhandled_exception(MonoObject *p_exc, bool p_fail_silently) { +void print_unhandled_exception(MonoObject *p_exc, bool p_recursion_caution) { mono_print_unhandled_exception(p_exc); #ifdef DEBUG_ENABLED GDMonoClass *st_klass = CACHED_CLASS(System_Diagnostics_StackTrace); @@ -414,7 +414,7 @@ void print_unhandled_exception(MonoObject *p_exc, bool p_fail_silently) { if (unexpected_exc != NULL) { mono_print_unhandled_exception(unexpected_exc); - if (p_fail_silently) { + if (p_recursion_caution) { // Called from CSharpLanguage::get_current_stack_info, // so printing an error here could result in endless recursion OS::get_singleton()->printerr("Mono: Method GDMonoUtils::print_unhandled_exception failed"); @@ -425,7 +425,7 @@ void print_unhandled_exception(MonoObject *p_exc, bool p_fail_silently) { } Vector si; - if (stack_trace != NULL) + if (stack_trace != NULL && !p_recursion_caution) si = CSharpLanguage::get_singleton()->stack_trace_get_info(stack_trace); String file = si.size() ? si[0].file : __FILE__; diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h index 1acc547993..597397eced 100644 --- a/modules/mono/mono_gd/gd_mono_utils.h +++ b/modules/mono/mono_gd/gd_mono_utils.h @@ -177,7 +177,7 @@ MonoDomain *create_domain(const String &p_friendly_name); String get_exception_name_and_message(MonoObject *p_ex); void print_unhandled_exception(MonoObject *p_exc); -void print_unhandled_exception(MonoObject *p_exc, bool p_fail_silently); +void print_unhandled_exception(MonoObject *p_exc, bool p_recursion_caution); } // namespace GDMonoUtils -- cgit v1.2.3