* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.
From-SVN: r113229
This commit is contained in:
parent
9fff64328d
commit
0623a8c0c2
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user