diff options
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/natClass.cc | 3 | ||||
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 3 |
2 files changed, 4 insertions, 2 deletions
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; |