diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-09 09:22:36 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-09 09:22:36 +0000 |
commit | 49095183544d177266906fe9344031429d011baf (patch) | |
tree | c443863c5e231ddb364e02e712a96a284b76f1e0 /libjava | |
parent | 563ee39fb0fac2ea7d4817926c6bf0ae726611b6 (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | libjava/java/lang/natClass.cc | 3 | ||||
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 3 |
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; |