aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natClass.cc
diff options
context:
space:
mode:
authorJeff Sturm <jsturm@one-point.com>2002-12-23 19:59:31 +0000
committerJeff Sturm <jsturm@gcc.gnu.org>2002-12-23 19:59:31 +0000
commit4017ae6e8b8f427065a97d0e99afa7347186c1ab (patch)
treea094b01d9cbc1da5277a2f87e776b7fb146d7e2f /libjava/java/lang/natClass.cc
parentd3ab697ba4d1eeeecc4ab37337cbcad455c80057 (diff)
downloadgcc-4017ae6e8b8f427065a97d0e99afa7347186c1ab.zip
gcc-4017ae6e8b8f427065a97d0e99afa7347186c1ab.tar.gz
gcc-4017ae6e8b8f427065a97d0e99afa7347186c1ab.tar.bz2
exception.cc (PERSONALITY_FUNCTION): Clear least-significant-bit of catch_type.
* exception.cc (PERSONALITY_FUNCTION): Clear least-significant-bit of catch_type. * java/lang/natClass.cc (initializeClass): Link vtable, otable, idt tables after initializing superclass. * java/lang/natClassLoader.cc (uaddr): New typedef. (_Jv_PrepareCompiledClass): Resolve superclass, interfaces if they are constant pool indicies. Don't link vtable, otable yet. From-SVN: r60450
Diffstat (limited to 'libjava/java/lang/natClass.cc')
-rw-r--r--libjava/java/lang/natClass.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 768ced6..0960649 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -758,9 +758,6 @@ java::lang::Class::initializeClass (void)
}
}
- if (state <= JV_STATE_LINKED)
- _Jv_PrepareConstantTimeTables (this);
-
// Step 2.
java::lang::Thread *self = java::lang::Thread::currentThread();
// FIXME: `self' can be null at startup. Hence this nasty trick.
@@ -805,6 +802,14 @@ java::lang::Class::initializeClass (void)
}
}
+ _Jv_PrepareConstantTimeTables (this);
+
+ if (vtable == NULL)
+ _Jv_MakeVTable(this);
+
+ if (otable != NULL && otable->state == 0)
+ _Jv_LinkOffsetTable(this);
+
// Steps 8, 9, 10, 11.
try
{