OSDN Git Service

2000-03-09 Bryce McKinlay <bryce@albatross.co.nz>
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Mar 2000 09:22:36 +0000 (09:22 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Mar 2000 09:22:36 +0000 (09:22 +0000)
        * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
        _Jv_PrepareConstantTimeTables.
        * java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
        classes should have an IDT, so don't return if klass is an array
        class.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32445 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/natClass.cc
libjava/java/lang/natClassLoader.cc

index 38b61f6..8c870fd 100644 (file)
@@ -1,3 +1,11 @@
+2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
+       _Jv_PrepareConstantTimeTables.
+       * java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
+       classes should have an IDT, so don't return if klass is an array
+       class.
+
 2000-03-08  Tom Tromey  <tromey@cygnus.com>
 
        * java/lang/reflect/natArray.cc (newInstance): Don't allow array
index dea2d8a..99fddf6 100644 (file)
@@ -1005,8 +1005,7 @@ _Jv_PrepareConstantTimeTables (jclass klass)
       klass0 = klass0->superclass;
     }
     
-  if (klass->isArray () 
-      || java::lang::reflect::Modifier::isAbstract (klass->accflags))
+  if (java::lang::reflect::Modifier::isAbstract (klass->accflags))
     return;
 
   klass->idt = 
index aeb035c..896873a 100644 (file)
@@ -584,6 +584,9 @@ _Jv_FindArrayClass (jclass element, java::lang::ClassLoader *loader)
       array_class->interfaces = interfaces;
       array_class->interface_count = 1;
 
+      // Generate the interface dispatch table.
+      _Jv_PrepareConstantTimeTables (array_class);
+
       // as per vmspec 5.3.3.2
       array_class->accflags = element->accflags;