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_); PROTECT(t, class_);
object o = 0; object o = 0;
if (classFlags(t, class_) & ACC_INTERFACE) { if ((classFlags(t, class_) & ACC_INTERFACE)
if (classVirtualTable(t, class_)) { and classVirtualTable(t, class_))
o = findInTable {
(t, classVirtualTable(t, class_), name, spec, methodName, methodSpec); o = findInTable
} (t, classVirtualTable(t, class_), name, spec, methodName, methodSpec);
} else { }
if (o == 0) {
for (; o == 0 and class_; class_ = classSuper(t, class_)) { for (; o == 0 and class_; class_ = classSuper(t, class_)) {
o = find(t, class_, name, spec); o = find(t, class_, name, spec);
} }