* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.

From-SVN: r113229
This commit is contained in:
Tom Tromey 2006-04-24 21:28:36 +00:00 committed by Tom Tromey
parent 9fff64328d
commit 0623a8c0c2
2 changed files with 16 additions and 5 deletions

View File

@ -1,3 +1,7 @@
2006-04-24 Tom Tromey <tromey@redhat.com>
* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.
2006-04-21 Andrew Haley <aph@redhat.com> 2006-04-21 Andrew Haley <aph@redhat.com>
* include/execution.h (struct _Jv_CompiledEngine): Define for * include/execution.h (struct _Jv_CompiledEngine): Define for

View File

@ -1182,9 +1182,14 @@ _Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
if (!klass->isInterface ()) if (!klass->isInterface ())
return false; return false;
int i = klass->method_count; int max = klass->method_count;
while (--i >= 0) int offset = 0;
for (int i = 0; i < max; ++i)
{ {
// Skip <clinit> here, as it will not be in the IDT.
if (klass->methods[i].name->first() == '<')
continue;
if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name) if (_Jv_equalUtf8Consts (klass->methods[i].name, utf_name)
&& _Jv_equalUtf8Consts (klass->methods[i].signature, utf_sig)) && _Jv_equalUtf8Consts (klass->methods[i].signature, utf_sig))
{ {
@ -1197,9 +1202,11 @@ _Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
found_class = klass; found_class = klass;
// Interface method indexes count from 1. // Interface method indexes count from 1.
index = i+1; index = offset + 1;
return true; return true;
} }
++offset;
} }
} }