[sre] Use coop handles for System.Reflection.Emit.EnumBuilder.setup_enum_type
authorAleksey Kliger <aleksey@xamarin.com>
Fri, 28 Apr 2017 18:51:50 +0000 (14:51 -0400)
committerAleksey Kliger <aleksey@xamarin.com>
Wed, 10 May 2017 15:13:59 +0000 (11:13 -0400)
mono/metadata/icall-def.h
mono/metadata/object-internals.h
mono/metadata/sre.c

index 688c142361672647baed77d6f7d7f471ca89fe59..0a532d9e4123af9695f68bbd4b5476a146b0c732 100644 (file)
@@ -546,7 +546,7 @@ ICALL_TYPE(DYNM, "System.Reflection.Emit.DynamicMethod", DYNM_1)
 HANDLES(ICALL(DYNM_1, "create_dynamic_method", ves_icall_DynamicMethod_create_dynamic_method))
 
 ICALL_TYPE(ENUMB, "System.Reflection.Emit.EnumBuilder", ENUMB_1)
-ICALL(ENUMB_1, "setup_enum_type", ves_icall_EnumBuilder_setup_enum_type)
+HANDLES(ICALL(ENUMB_1, "setup_enum_type", ves_icall_EnumBuilder_setup_enum_type))
 
 ICALL_TYPE(MODULEB, "System.Reflection.Emit.ModuleBuilder", MODULEB_10)
 ICALL(MODULEB_10, "GetRegisteredToken", ves_icall_ModuleBuilder_GetRegisteredToken)
index d9522db2583cee987e037d83f0f08931ed437a19..56abbaf703f780e56dff2bdc9df33d90e82f670f 100644 (file)
@@ -1899,8 +1899,9 @@ MonoReflectionTypeHandle
 ves_icall_TypeBuilder_create_runtime_class (MonoReflectionTypeBuilderHandle tb, MonoError *error);
 
 void
-ves_icall_EnumBuilder_setup_enum_type (MonoReflectionType *enumtype,
-                                                                          MonoReflectionType *t);
+ves_icall_EnumBuilder_setup_enum_type (MonoReflectionTypeHandle enumtype,
+                                      MonoReflectionTypeHandle t,
+                                      MonoError *error);
 
 void
 ves_icall_ModuleBuilder_basic_init (MonoReflectionModuleBuilderHandle moduleb, MonoError *error);
index cc40e048493bbc1bf8f9d1ccf55cc14ad2cc7de4..a371a637f5411440c46b6251856dd627688b96c9 100644 (file)
@@ -4347,10 +4347,12 @@ ves_icall_AssemblyBuilder_basic_init (MonoReflectionAssemblyBuilder *assemblyb)
 }
 
 void
-ves_icall_EnumBuilder_setup_enum_type (MonoReflectionType *enumtype,
-                                                                          MonoReflectionType *t)
+ves_icall_EnumBuilder_setup_enum_type (MonoReflectionTypeHandle enumtype,
+                                      MonoReflectionTypeHandle t,
+                                      MonoError *error)
 {
-       enumtype->type = t->type;
+       error_init (error);
+       MONO_HANDLE_SETVAL (enumtype, type, MonoType*, MONO_HANDLE_GETVAL (t, type));
 }
 
 void