aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClass.cc3
-rw-r--r--libjava/java/lang/natClassLoader.cc3
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;