natClassLoader.cc (_Jv_FindArrayClass): Call _Jv_PrepareConstantTimeTables.

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.

From-SVN: r32445
This commit is contained in:
Bryce McKinlay 2000-03-09 09:22:36 +00:00 committed by Bryce McKinlay
parent 90e5a6dc40
commit fb863f625e
3 changed files with 12 additions and 2 deletions

View File

@ -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> 2000-03-08 Tom Tromey <tromey@cygnus.com>
* java/lang/reflect/natArray.cc (newInstance): Don't allow array * java/lang/reflect/natArray.cc (newInstance): Don't allow array

View File

@ -1005,8 +1005,7 @@ _Jv_PrepareConstantTimeTables (jclass klass)
klass0 = klass0->superclass; klass0 = klass0->superclass;
} }
if (klass->isArray () if (java::lang::reflect::Modifier::isAbstract (klass->accflags))
|| java::lang::reflect::Modifier::isAbstract (klass->accflags))
return; return;
klass->idt = klass->idt =

View File

@ -584,6 +584,9 @@ _Jv_FindArrayClass (jclass element, java::lang::ClassLoader *loader)
array_class->interfaces = interfaces; array_class->interfaces = interfaces;
array_class->interface_count = 1; array_class->interface_count = 1;
// Generate the interface dispatch table.
_Jv_PrepareConstantTimeTables (array_class);
// as per vmspec 5.3.3.2 // as per vmspec 5.3.3.2
array_class->accflags = element->accflags; array_class->accflags = element->accflags;