[sre] Use coop handles in parts of sre.c
authorAleksey Kliger <aleksey@xamarin.com>
Thu, 12 Jan 2017 15:36:21 +0000 (10:36 -0500)
committerAleksey Kliger (λgeek) <akliger@gmail.com>
Thu, 19 Jan 2017 20:07:26 +0000 (15:07 -0500)
commit6e91d455db69e266393028e07a53cd09d669ee22
tree841ad56e5b91522f05893ca1443bcb750ceca6a1
parenta5aa762c1651a486886e83f3bc71ee16b2ff4e0f
[sre] Use coop handles in parts of sre.c

* Convert ves_icall_RuntimeType_MakeGenericType to use handles.
* The above necessitates converting mono_reflection_bind_generic_parameters and
  mono_reflection_type_get_handle (renamed to
  mono_reflection_type_handle_mono_type) to use handles.
* From there we have to touch a lot of builder internals:
  - ves_icall_DynamicMethod_create_dynamic_method
  - ves_icall_ModuleBuilder_RegisterToken
  - ves_icall_ModuleBuilder_basic_init
  - ves_icall_ModuleBuilder_getMethodToken
  - ves_icall_ModuleBuilder_getToken
  - ves_icall_ModuleBuilder_getUSIndex
  - ves_icall_TypeBuilder_create_runtime_class
* As well as runtime functions
  - mono_image_insert_string
  - mono_image_create_token
  - mono_class_{get,has,set}_ref_info
  - mono_reflection_is_usertype
  - mono_dynimage_encode_reflection_sighelper
  - mono_dynamic_image_register_token
16 files changed:
mcs/class/corlib/System.Reflection.Emit/TypeBuilderInstantiation.cs
mono/metadata/class.c
mono/metadata/dynamic-image-internals.h
mono/metadata/dynamic-image.c
mono/metadata/handle.h
mono/metadata/icall-def.h
mono/metadata/icall.c
mono/metadata/object-internals.h
mono/metadata/object.c
mono/metadata/reflection-cache.h
mono/metadata/reflection-internals.h
mono/metadata/reflection.c
mono/metadata/sre-encode.c
mono/metadata/sre-internals.h
mono/metadata/sre-save.c
mono/metadata/sre.c