[reflection] Coop handles icalls in System.Reflection and System.RuntimeTypeHandle...
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Tue, 10 Jan 2017 15:22:14 +0000 (10:22 -0500)
committerGitHub <noreply@github.com>
Tue, 10 Jan 2017 15:22:14 +0000 (10:22 -0500)
commitea176c5bb8d2f93dafeec4aff683860c886c97ba
tree1bab45cbd8c40e435b168bb719be1b466aedb1eb
parent086b93022e2306cb76fc1f4cf6c45b59e763a315
[reflection] Coop handles icalls in System.Reflection and System.RuntimeTypeHandle (#4217)

* [sre] Add typed coop handle declarations

* [reflection] Implement mono_reflection_get_token_handle

  Rewrite mono_reflection_get_token_checked to use it.

* [reflection] Use handles for ves_icall_reflection_get_token

  - Get rid of mono_reflection_get_token_checked
  - Rename mono_reflection_get_token_handle to mono_reflection_get_token_checked

* [reflection] Use handles for ves_icall_GetCurrentMethod

* [reflection] Use handles for ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType_native

* [reflection] Use handles for ves_icall_System_Reflection_Module_ResolveSignature

* [reflection] Use handles for ves_icall_System_Type_internal_from_name

* [reflection] Use handles for ves_icall_System_Type_internal_from_handle

* [runtime] Use coop handles for System.Object.GetType ()

* [reflection] Use handles for ves_icall_MonoField_GetParentType

* [reflection] Use handles for ves_icall_MonoField_ResolveType

* [reflection] Use handles for most icalls in System.RuntimeTypeHandle

  - GetArrayRank
  - GetAttributes
  - GetBaseType
  - GetElementType
  - HasInstantiation
  - IsArray
  - IsByRef
  - IsComObject
  - IsGenericTypeDefinition
  - IsGenericVariable
  - IsPointer
  - IsPrimitive
  - type_is_assignable_from

* [reflection] Use handles for ves_icall_RuntimeTypeHandle_GetGenericTypeDefinition_impl

  and ves_icall_RuntimeTypeHandle_GetGenericParameterInfo
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/object-internals.h
mono/metadata/reflection-internals.h
mono/metadata/reflection.c