From fb863f625e01b70f4e8335b81c66d5f41c2dc54a Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Thu, 9 Mar 2000 09:22:36 +0000 Subject: natClassLoader.cc (_Jv_FindArrayClass): Call _Jv_PrepareConstantTimeTables. 2000-03-09 Bryce McKinlay * 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. From-SVN: r32445 --- libjava/java/lang/natClass.cc | 3 +-- libjava/java/lang/natClassLoader.cc | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index dea2d8a..99fddf6d 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -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 = diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index aeb035c..896873a 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -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; -- cgit v1.1