- mono_class_setup_methods (in_class);
- for (i = 0; i < in_class->method.count; ++i) {
- MonoMethod *m = in_class->methods [i];
+ mono_metadata_decode_table_row (klass->image, MONO_TABLE_METHOD, klass->method.first + i, cols, MONO_METHOD_SIZE);
+
+ m_name = mono_metadata_string_heap (klass->image, cols [MONO_METHOD_NAME]);
+
+ if (!((fqname && !strcmp (m_name, fqname)) ||
+ (qname && !strcmp (m_name, qname)) ||
+ (name && !strcmp (m_name, name))))
+ continue;
+
+ method = mono_get_method (klass->image, MONO_TOKEN_METHOD_DEF | (klass->method.first + i + 1), klass);
+ if (method && (sig->call_convention != MONO_CALL_VARARG) && mono_metadata_signature_equal (sig, mono_method_signature (method)))
+ return method;
+ }
+ }
+
+ mono_class_setup_methods (klass);
+ for (i = 0; i < klass->method.count; ++i) {
+ MonoMethod *m = klass->methods [i];