diff options
author | Jeff Sturm <jsturm@one-point.com> | 2002-12-23 19:59:31 +0000 |
---|---|---|
committer | Jeff Sturm <jsturm@gcc.gnu.org> | 2002-12-23 19:59:31 +0000 |
commit | 4017ae6e8b8f427065a97d0e99afa7347186c1ab (patch) | |
tree | a094b01d9cbc1da5277a2f87e776b7fb146d7e2f /libjava/java/lang/natClass.cc | |
parent | d3ab697ba4d1eeeecc4ab37337cbcad455c80057 (diff) | |
download | gcc-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.cc | 11 |
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 { |