aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2005-10-13 17:36:07 +0000
committerAndrew Haley <aph@gcc.gnu.org>2005-10-13 17:36:07 +0000
commit02f3e085c7ba33279329aae728aaf42dc922add6 (patch)
treeed6a5f713bffb23dc047a7b7d17b3af36a5ad222
parentc1d70e1a522d8c82ca8898a46d746f2f352bf6d5 (diff)
downloadgcc-02f3e085c7ba33279329aae728aaf42dc922add6.zip
gcc-02f3e085c7ba33279329aae728aaf42dc922add6.tar.gz
gcc-02f3e085c7ba33279329aae728aaf42dc922add6.tar.bz2
re PR java/24251 (BC-compiled interfaces in libgcj can't be called from non-BC code)
2005-10-12 Andrew Haley <aph@redhat.com> PR java/24251 * link.cc (ensure_method_table_complete): Install Miranda methods for interfaces too. From-SVN: r105375
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/link.cc5
2 files changed, 9 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 8098216..f8f55a0 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-12 Andrew Haley <aph@redhat.com>
+
+ PR java/24251
+ * link.cc (ensure_method_table_complete): Install Miranda methods
+ for interfaces too.
+
2005-10-10 Tom Tromey <tromey@redhat.com>
* testsuite/libjava.lang/ExtraClassLoader.out: New file.
diff --git a/libjava/link.cc b/libjava/link.cc
index 7e51a26..2d6b199 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