[aot] Fix the emission of ElementAddr wrappers.
authorZoltan Varga <vargaz@gmail.com>
Tue, 17 Feb 2015 12:46:11 +0000 (07:46 -0500)
committerZoltan Varga <vargaz@gmail.com>
Tue, 17 Feb 2015 12:46:11 +0000 (07:46 -0500)
mono/mini/aot-compiler.c

index 28e679685d81d97e09b2b7ede89c8532b3fb2546..11c4317bb4e0482b9136414e9bb368e2b0a3cba7 100644 (file)
@@ -6825,8 +6825,12 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
                                        }
                                        add_generic_class_with_depth (acfg, m->klass, depth + 5, "method");
                                }
-                               if (m->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED && !strcmp (m->name, "ElementAddr"))
-                                       add_extra_method_with_depth (acfg, m, depth + 1);
+                               if (m->wrapper_type == MONO_WRAPPER_MANAGED_TO_MANAGED) {
+                                       WrapperInfo *info = mono_marshal_get_wrapper_info (m);
+
+                                       if (info && info->subtype == WRAPPER_SUBTYPE_ELEMENT_ADDR)
+                                               add_extra_method_with_depth (acfg, m, depth + 1);
+                               }
                                break;
                        }
                        case MONO_PATCH_INFO_VTABLE: {