fix failure to add abstract virtuals to class with no declared virtuals

This commit is contained in:
Joel Dice 2010-09-25 16:35:18 -06:00
parent 268d2de175
commit 1d4b54a9f6
2 changed files with 16 additions and 0 deletions

View File

@ -1494,6 +1494,7 @@ parseMethodTable(Thread* t, Stream& s, object class_, object pool)
bool populateInterfaceVtables = false;
if (declaredVirtualCount == 0
and abstractVirtuals == 0
and (classFlags(t, class_) & ACC_INTERFACE) == 0)
{
if (classSuper(t, class_)) {

View File

@ -1,4 +1,16 @@
public class Misc {
private interface Bar {
public int baz();
}
private static abstract class Bim implements Bar { }
private static class Baz extends Bim {
public int baz() {
return 42;
}
}
private static int alpha;
private static int beta;
private static byte byte1, byte2, byte3;
@ -93,6 +105,9 @@ public class Misc {
}
public static void main(String[] args) {
Bim bim = new Baz();
expect(bim.baz() == 42);
expect(queryDefault(new Object()) != null);
{ Foo foo = new Foo();