From 02f3e085c7ba33279329aae728aaf42dc922add6 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Thu, 13 Oct 2005 17:36:07 +0000 Subject: [PATCH] re PR java/24251 (BC-compiled interfaces in libgcj can't be called from non-BC code) 2005-10-12 Andrew Haley PR java/24251 * link.cc (ensure_method_table_complete): Install Miranda methods for interfaces too. From-SVN: r105375 --- libjava/ChangeLog | 6 ++++++ libjava/link.cc | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 8098216c1a4a..f8f55a0d197d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2005-10-12 Andrew Haley + + PR java/24251 + * link.cc (ensure_method_table_complete): Install Miranda methods + for interfaces too. + 2005-10-10 Tom Tromey * testsuite/libjava.lang/ExtraClassLoader.out: New file. diff --git a/libjava/link.cc b/libjava/link.cc index 7e51a2670e3e..2d6b19906485 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -1548,11 +1548,12 @@ _Jv_Linker::add_miranda_methods (jclass base, jclass iface_class) void _Jv_Linker::ensure_method_table_complete (jclass klass) { - if (klass->vtable != NULL || klass->isInterface()) + if (klass->vtable != NULL) return; // We need our superclass to have its own Miranda methods installed. - wait_for_state (klass->getSuperclass (), JV_STATE_LOADED); + if (! klass->isInterface()) + wait_for_state (klass->getSuperclass (), JV_STATE_LOADED); // A class might have so-called "Miranda methods". This is a method // that is declared in an interface and not re-declared in an