X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmonodiet.c;h=35f873d58bdcb39b8c1d3456371c0f8c35ec7b2e;hb=d5fa8f0cdd8a42c7c5e0fd7a66a0ab0afcb5f9f6;hp=931ab9d9afeecf9576d16c3f840fa3cf633bc9d0;hpb=53e266903ec6b2d822cf5b0c566f6374df5307a4;p=mono.git diff --git a/mono/metadata/monodiet.c b/mono/metadata/monodiet.c index 931ab9d9afe..35f873d58bd 100644 --- a/mono/metadata/monodiet.c +++ b/mono/metadata/monodiet.c @@ -128,7 +128,7 @@ add_types_from_method (MonoMethod *method) { locals = mono_method_header_get_locals (header, &n, NULL); for (i = 0; i < n; ++i) { - klass = mono_class_from_mono_type (locals); + klass = mono_class_from_mono_type (locals [i]); add_type (klass); } for (exc_iter = NULL; mono_method_header_get_clauses (header, method, &exc_iter, &clause);) { @@ -336,9 +336,8 @@ check_vmethods (MonoClass *klass, MonoMethod *method) if (!vtable) return; if (method->klass->flags & TYPE_ATTRIBUTE_INTERFACE) { - if (method->klass->interface_id <= klass->max_interface_id && - (klass->interface_offsets [method->klass->interface_id] >= 0)) { - int iface_offset = klass->interface_offsets [method->klass->interface_id]; + if (MONO_CLASS_IMPLEMENTS_INTERFACE (klass, method->klass->interface_id)) { + int iface_offset = mono_class_interface_offset (klass, method->klass); g_assert (method->slot != -1); if (vtable [iface_offset + method->slot]) add_types_from_method (vtable [iface_offset + method->slot]);