diff options
| author | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2018-06-26 21:03:42 +0200 |
|---|---|---|
| committer | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2018-07-04 03:08:29 +0200 |
| commit | 4739cb8c0003a7c35220ce43d8263df617c6fbe0 (patch) | |
| tree | 257bd9f9e4951c0b90db9220fc3eeb1bf45b5f65 /modules/mono/mono_gd/gd_mono_marshal.cpp | |
| parent | 68f7cf13c7326c077cc6ff8a6a267ae2610c4519 (diff) | |
| download | redot-engine-4739cb8c0003a7c35220ce43d8263df617c6fbe0.tar.gz | |
Mono: Pending exceptions and cleanup
Diffstat (limited to 'modules/mono/mono_gd/gd_mono_marshal.cpp')
| -rw-r--r-- | modules/mono/mono_gd/gd_mono_marshal.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp index c04fcca962..31c5bbb2fb 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.cpp +++ b/modules/mono/mono_gd/gd_mono_marshal.cpp @@ -837,11 +837,13 @@ MonoObject *Dictionary_to_mono_object(const Dictionary &p_dict) { GDMonoUtils::MarshalUtils_ArraysToDict arrays_to_dict = CACHED_METHOD_THUNK(MarshalUtils, ArraysToDictionary); - MonoObject *ex = NULL; - MonoObject *ret = arrays_to_dict(keys, values, &ex); + MonoException *exc = NULL; + GD_MONO_BEGIN_RUNTIME_INVOKE; + MonoObject *ret = arrays_to_dict(keys, values, (MonoObject **)&exc); + GD_MONO_END_RUNTIME_INVOKE; - if (ex) { - mono_print_unhandled_exception(ex); + if (exc) { + GDMonoUtils::set_pending_exception(exc); ERR_FAIL_V(NULL); } @@ -858,11 +860,13 @@ Dictionary mono_object_to_Dictionary(MonoObject *p_dict) { MonoArray *keys = NULL; MonoArray *values = NULL; - MonoObject *ex = NULL; - dict_to_arrays(p_dict, &keys, &values, &ex); + MonoException *exc = NULL; + GD_MONO_BEGIN_RUNTIME_INVOKE; + dict_to_arrays(p_dict, &keys, &values, (MonoObject **)&exc); + GD_MONO_END_RUNTIME_INVOKE; - if (ex) { - mono_print_unhandled_exception(ex); + if (exc) { + GDMonoUtils::set_pending_exception(exc); ERR_FAIL_V(Dictionary()); } |
