summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/natClass.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-24 21:28:36 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-24 21:28:36 +0000
commit038d26bdaf35eec8cbda97e3f0dc6c4780e1ae59 (patch)
treeb428bcb705f8cde0041de4120ed15be9c6571606 /libjava/java/lang/natClass.cc
parent173dae522fe6b6ed02770b46ec6d7c6abc0622d9 (diff)
downloadppe42-gcc-038d26bdaf35eec8cbda97e3f0dc6c4780e1ae59.tar.gz
ppe42-gcc-038d26bdaf35eec8cbda97e3f0dc6c4780e1ae59.zip
* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113229 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/natClass.cc')
-rw-r--r--libjava/java/lang/natClass.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 38a9aff4a0b..d88835019f4 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -1182,9 +1182,14 @@ _Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
if (!klass->isInterface ())
return false;
- int i = klass->method_count;
- while (--i >= 0)
+ int max = klass->method_count;
+ 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)
&& _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;
// Interface method indexes count from 1.
- index = i+1;
+ index = offset + 1;
return true;
}
+
+ ++offset;
}
}
@@ -1211,8 +1218,8 @@ _Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
{
using namespace java::lang::reflect;
bool found = _Jv_getInterfaceMethod (search_class->interfaces[i],
- found_class, index,
- utf_name, utf_sig);
+ found_class, index,
+ utf_name, utf_sig);
if (found)
return true;
}
OpenPOWER on IntegriCloud