summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-09 09:22:36 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-09 09:22:36 +0000
commit49095183544d177266906fe9344031429d011baf (patch)
treec443863c5e231ddb364e02e712a96a284b76f1e0 /libjava
parent563ee39fb0fac2ea7d4817926c6bf0ae726611b6 (diff)
downloadgcc-49095183544d177266906fe9344031429d011baf.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32445 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog8
-rw-r--r--libjava/java/lang/natClass.cc3
-rw-r--r--libjava/java/lang/natClassLoader.cc3
3 files changed, 12 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 38b61f6d1e5..8c870fd4f8d 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index dea2d8a698e..99fddf6d8ac 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 aeb035c669c..896873a6a6e 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;