Add GC Unsafe thread state transitions to MONO_API functions - third batch (#9447)
commit777b956a35c4d59c0169d957bd1a5f3f4742e33f
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Wed, 18 Jul 2018 18:12:55 +0000 (18 14:12 -0400)
committerGitHub <noreply@github.com>
Wed, 18 Jul 2018 18:12:55 +0000 (18 14:12 -0400)
treef94b07d08c2140efd35845479f38a9aa9bcf32d1
parent1eccdb6b0735322061745d991ad00ee1aaf87450
Add GC Unsafe thread state transitions to MONO_API functions - third batch (#9447)

* [runtime] MONO_API mono_thread_is_foreign needs GC Unsafe

* [runtime] MONO_API mono_signature_get_params_internal needs GC Unsafe

* [runtime] MONO_API mono_domain_foreach needs GC Unsafe

* [runtime] MONO_API mono_class_is_subclass_of needs GC Unsafe

* [runtime] MONO_API mono_domain_create_appdomain needs GC Unsafe

* [runtime] MONO_API mono_signature_get_return_type needs GC Unsafe

* [mini] MONO_API mono_jit_exec needs GC Unsafe

* [mini] MONO_API mono_jit_cleanup needs GC Unsafe

* [runtime] MONO_API mono_class_get_type needs GC Unsafe

  Switch runtime to call m_class_get_byval_arg almost everywhere.

  The one holdout is MONO_CLASS_IS_INTERFACE which is difficult to fix up since
  it's in a public header

* [runtime] MONO_API mono_domain_from_appdomain needs GC Unsafe

* [runtime] MONO_API mono_domain_get_by_id needs GC Unsafe

* [runtime] MONO_API mono_domain_unload needs GC Unsafe

* [runtime] MONO_API mono_exception_from_name_msg needs GC Unsafe

  Since it takes a callback, switch to GC Safe when calling the callback.

  In the callback that's used in the runtime, switch back to GC Unsafe.

* [runtime] MONO_API mono_debug_open_image_from_memory needs GC Unsafe

* [runtime] MONO_API mono_dl_fallback_register needs GC Unsafe
19 files changed:
mono/metadata/appdomain.c
mono/metadata/class.c
mono/metadata/domain.c
mono/metadata/exception.c
mono/metadata/icall.c
mono/metadata/marshal.c
mono/metadata/metadata.c
mono/metadata/mono-debug.c
mono/metadata/object.c
mono/metadata/sre.c
mono/metadata/threads.c
mono/metadata/verify.c
mono/mini/aot-compiler.c
mono/mini/debugger-agent.c
mono/mini/driver.c
mono/mini/mini-exceptions.c
mono/profiler/coverage.c
mono/profiler/log.c
mono/utils/mono-dl.c