File tree 1 file changed +6
-2
lines changed
1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -3949,6 +3949,7 @@ reflection_create_dynamic_method (MonoReflectionDynamicMethodHandle ref_mb, Mono
3949
3949
gboolean ret = TRUE;
3950
3950
MonoReflectionDynamicMethod * mb ;
3951
3951
MonoAssembly * ass = NULL ;
3952
+ MonoObjectHandle ref_handle = MONO_HANDLE_NEW (MonoObject , NULL );
3952
3953
3953
3954
error_init (error );
3954
3955
@@ -3977,8 +3978,11 @@ reflection_create_dynamic_method (MonoReflectionDynamicMethodHandle ref_mb, Mono
3977
3978
for (gint32 i = 0 ; i < mb -> nrefs ; i += 2 ) {
3978
3979
MonoClass * handle_class ;
3979
3980
gpointer ref ;
3980
- MonoObject * obj = mono_array_get_internal (mb -> refs , MonoObject * , i );
3981
- MONO_HANDLE_PIN (obj );
3981
+ MonoObject * obj ;
3982
+
3983
+ obj = mono_array_get_internal (mb -> refs , MonoObject * , i );
3984
+ /* Reuse the handle since we are inside a loop */
3985
+ MONO_HANDLE_ASSIGN_RAW (ref_handle , obj );
3982
3986
3983
3987
if (strcmp (obj -> vtable -> klass -> name , "DynamicMethod" ) == 0 ) {
3984
3988
MonoReflectionDynamicMethod * method = (MonoReflectionDynamicMethod * )obj ;
You can’t perform that action at this time.
0 commit comments