From 21ae2786dae3a2dc3521fe4a1de7dda3e030ace2 Mon Sep 17 00:00:00 2001 From: Aleksey Kliger Date: Wed, 3 May 2017 14:21:33 -0400 Subject: [PATCH] [sre] Use coop handles for ModuleBuilder.set_wrappers_type --- mono/metadata/icall-def.h | 2 +- mono/metadata/object-internals.h | 2 +- mono/metadata/sre.c | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mono/metadata/icall-def.h b/mono/metadata/icall-def.h index a50dc9c6481..81372e12baa 100644 --- a/mono/metadata/icall-def.h +++ b/mono/metadata/icall-def.h @@ -557,7 +557,7 @@ ICALL(MODULEB_3, "build_metadata", ves_icall_ModuleBuilder_build_metadata) HANDLES(ICALL(MODULEB_5, "getMethodToken", ves_icall_ModuleBuilder_getMethodToken)) HANDLES(ICALL(MODULEB_6, "getToken", ves_icall_ModuleBuilder_getToken)) HANDLES(ICALL(MODULEB_7, "getUSIndex", ves_icall_ModuleBuilder_getUSIndex)) -ICALL(MODULEB_9, "set_wrappers_type", ves_icall_ModuleBuilder_set_wrappers_type) +HANDLES(ICALL(MODULEB_9, "set_wrappers_type", ves_icall_ModuleBuilder_set_wrappers_type)) ICALL_TYPE(SIGH, "System.Reflection.Emit.SignatureHelper", SIGH_1) HANDLES(ICALL(SIGH_1, "get_signature_field", ves_icall_SignatureHelper_get_signature_field)) diff --git a/mono/metadata/object-internals.h b/mono/metadata/object-internals.h index 0c9450f50e1..59b1cc55899 100644 --- a/mono/metadata/object-internals.h +++ b/mono/metadata/object-internals.h @@ -1910,7 +1910,7 @@ guint32 ves_icall_ModuleBuilder_getUSIndex (MonoReflectionModuleBuilderHandle module, MonoStringHandle str, MonoError *error); void -ves_icall_ModuleBuilder_set_wrappers_type (MonoReflectionModuleBuilder *moduleb, MonoReflectionType *type); +ves_icall_ModuleBuilder_set_wrappers_type (MonoReflectionModuleBuilderHandle moduleb, MonoReflectionTypeHandle type, MonoError *error); MonoAssembly* mono_try_assembly_resolve_handle (MonoDomain *domain, MonoStringHandle fname, MonoAssembly *requesting, gboolean refonly, MonoError *error); diff --git a/mono/metadata/sre.c b/mono/metadata/sre.c index e93e716a1dc..b50434bc1fe 100644 --- a/mono/metadata/sre.c +++ b/mono/metadata/sre.c @@ -4365,10 +4365,12 @@ ves_icall_ModuleBuilder_getUSIndex (MonoReflectionModuleBuilderHandle module, Mo } void -ves_icall_ModuleBuilder_set_wrappers_type (MonoReflectionModuleBuilder *moduleb, MonoReflectionType *type) +ves_icall_ModuleBuilder_set_wrappers_type (MonoReflectionModuleBuilderHandle moduleb, MonoReflectionTypeHandle ref_type, MonoError *error) { - MonoDynamicImage *image = moduleb->dynamic_image; + error_init (error); + MonoDynamicImage *image = MONO_HANDLE_GETVAL (moduleb, dynamic_image); + MonoType *type = MONO_HANDLE_GETVAL (ref_type, type); - g_assert (type->type); - image->wrappers_type = mono_class_from_mono_type (type->type); + g_assert (type); + image->wrappers_type = mono_class_from_mono_type (type); } -- 2.25.1