[reflection] Use handles for several more icalls (#4098)
authorAleksey Kliger (λgeek) <akliger@gmail.com>
Tue, 27 Dec 2016 20:37:18 +0000 (15:37 -0500)
committerGitHub <noreply@github.com>
Tue, 27 Dec 2016 20:37:18 +0000 (15:37 -0500)
commit972f3c8ced58ed9e73c43294cb40225fcf91910d
tree6f1d93a7cdea6a7dd4da7d5720addcb33b13e80b
parent1fc6bdd1b0e37a6fbe67742d2f6a2586dcdcd38a
[reflection] Use handles for several more icalls (#4098)

* [runtime] Remove MonoReflectionGenericMethod typedef.

  - It's not used in the runtime,
  - Unlike other defs in object-internals.h it doesn't seem to have a
    corresponding managed object.

* [reflection] Add mono_field_get_object_handle.

  Reimplement mono_field_get_object and mono_field_get_object_checked in
  terms of it.

* [reflection] Add mono_property_get_object_handle

  Reimplement mono_property_get_object and
  mono_property_get_object_checked in terms of it.

* [reflection] Use handles for FieldInfo,MonoPropertyInfo,ParameterInfo.GetTypeModifiers

* [reflection] Use handles for MonoMethodInfo.get_parameter_info

  - Change mono_param_get_objects_internal to use handles

* [reflection] Cleanup in method_object_construct

* [reflection] Use handles for System.Refleciton.EventInfo.internal_from_handle_type

  - Replace mono_event_get_object_checked by mono_event_get_object_handle
    which uses handles.

* [reflection] Use handles for System.Reflection.MethodBase.GetMethodBodyInternal

  - Replace mono_method_body_get_object_checked by
    mono_method_body_get_object_handle

* [reflection] Remove CHECK_OR_CONSTRUCT, it's dead code.

  All former callers now use CHECK_OR_CONSTRUCT_HANDLE

* [reflection] Use handles for FieldInfo.get_marshal_info and MonoMethodInfo.get_retval_marshal

  - Change mono_reflection_marshal_as_attribute_from_marshal_spec to
    return a handle; fix callers

* [metadata] Add mono_metadata_get_canonical_generic_inst utility function

* [reflection] Use handles for System.Reflection.Module.ResolveMemberToken and 3 more icalls

  - ResolveFieldToken
  - ResolveMethodToken
  - ResolveTypeToken
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/metadata-internals.h
mono/metadata/metadata.c
mono/metadata/object-internals.h
mono/metadata/reflection-cache.h
mono/metadata/reflection-internals.h
mono/metadata/reflection.c
mono/metadata/sre.c