[reflection] Use coop handles for MonoMethod icalls (#4272)
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Fri, 20 Jan 2017 15:35:02 +0000 (10:35 -0500)
committerGitHub <noreply@github.com>
Fri, 20 Jan 2017 15:35:02 +0000 (10:35 -0500)
commitb3d9af902387c719edf27251049c5214854897b1
tree3e6bf762c39610d941ca42702e01f179ddae597c
parent6f2ce1ddf9661675e4922b31d26989f5d5685151
[reflection] Use coop handles for MonoMethod icalls (#4272)

* [reflection] Use coop handles for MonoMethod.GetGenericArguments

* [reflection] Use handles for ves_icall_MonoMethod_GetGenericMethodDefinition
  and two more trivial functions:
  - ves_icall_MonoMethod_get_IsGenericMethod
  - ves_icall_MonoMethod_get_IsGenericMethodDefinition

* [runtime] Add mono_method_get_base_method function

  - Internal function in class-internals.h, for now.
  - Code factored out from ves_icall_MonoMethod_get_base_method
  - ves_icall_MonoMethod_get_base_method just calls this utility and wraps on
    reflection objects, using handles.

* [reflection] Use coop handles for ves_icall_MonoMethod_MakeGenericMethod_impl

* [reflection] Use coop handles for ves_icall_MonoMethod_GetPInvoke

* [reflection] Use coop handles for ves_icall_MonoMethod_get_core_clr_security_level

* [reflection] Use coop handles for ves_icall_MonoMethod_get_name
mono/metadata/class-internals.h
mono/metadata/class.c
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/object-internals.h
mono/metadata/reflection.c