exception.cc (PERSONALITY_FUNCTION): Clear least-significant-bit of catch_type.
[gcc.git] / libjava / java / lang / natClass.cc
index 768ced611ac2cb9500614c2d8de44e12c1ff5943..0960649e71cb5a2835473d42a04d873221c8910c 100644 (file)
@@ -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
     {