fix static field lookup from interfaces

This commit is contained in:
Joel Dice 2008-09-26 18:17:13 -06:00
parent 025cf59bb6
commit ac988f7a0d

View File

@ -2598,12 +2598,14 @@ findInHierarchy(Thread* t, object class_, object name, object spec,
PROTECT(t, class_);
object o = 0;
if (classFlags(t, class_) & ACC_INTERFACE) {
if (classVirtualTable(t, class_)) {
o = findInTable
(t, classVirtualTable(t, class_), name, spec, methodName, methodSpec);
}
} else {
if ((classFlags(t, class_) & ACC_INTERFACE)
and classVirtualTable(t, class_))
{
o = findInTable
(t, classVirtualTable(t, class_), name, spec, methodName, methodSpec);
}
if (o == 0) {
for (; o == 0 and class_; class_ = classSuper(t, class_)) {
o = find(t, class_, name, spec);
}