* class.c (make_class_data): Push initial value for "arrayclass". * decl.c (init_decl_processing): Add new class field "arrayclass". In libjava: * java/lang/Class.h (_Jv_InitClass): Use __builtin_expect. (_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. (_Jv_GetArrayClass): New inline function. (arrayclass): New field. * prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayClass. Don't use _Jv_GetArrayElementFromElementType. (_Jv_NewPrimArray): Ditto. (_Jv_PrimClass constructor): Initialize "depth", "ancestors", and "idt" for completeness. Initialze "arrayclass" using _Jv_NewArrayClass. Set Modifier::ABSTRACT. * java/lang/natClassLoader.cc (_Jv_NewClass): Initialize "arrayclass". (_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. Now void. Now synchronized. Array classes are now referenced from elementClass->arrayclass. Don't use _Jv_FindClassInCache. Set array classes' accessibility flags correctly. Optimize so that all array classes share the same IDT. * java/lang/reflect/natArray.cc (newInstance): Use _Jv_GetArrayClass. * java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Ditto. * java/lang/natClass.cc (_getFields): Increment offset. Prevent fields in superclasses from overwriting classes own fields. (_Jv_IsAssignableFrom): Check for NULL source idt instead of calling Modifier::isAbstract(). (null_idt): New static field. (_Jv_PrepareConstantTimeTables): Optimize case where class implements no interfaces. (_Jv_IndexOf): Made inline. * boehm.cc (_Jv_MarkObj): Mark "arrayclass" field. From-SVN: r38808
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
.cvsignore | Loading commit data... | |
ChangeLog | Loading commit data... | |
Make-lang.in | Loading commit data... | |
boehm.c | Loading commit data... | |
buffer.c | Loading commit data... | |
buffer.h | Loading commit data... | |
chartables.h | Loading commit data... | |
check-init.c | Loading commit data... | |
class.c | Loading commit data... | |
config-lang.in | Loading commit data... | |
constants.c | Loading commit data... | |
convert.h | Loading commit data... | |
decl.c | Loading commit data... | |
except.c | Loading commit data... | |
expr.c | Loading commit data... | |
gen-table.pl | Loading commit data... | |
gjavah.c | Loading commit data... | |
java-except.h | Loading commit data... | |
java-opcodes.h | Loading commit data... | |
java-tree.def | Loading commit data... | |
java-tree.h | Loading commit data... | |
javaop.def | Loading commit data... | |
javaop.h | Loading commit data... | |
jcf-depend.c | Loading commit data... | |
jcf-dump.c | Loading commit data... | |
jcf-io.c | Loading commit data... | |
jcf-parse.c | Loading commit data... | |
jcf-path.c | Loading commit data... | |
jcf-reader.c | Loading commit data... | |
jcf-write.c | Loading commit data... | |
jcf.h | Loading commit data... | |
jv-scan.c | Loading commit data... | |
jvgenmain.c | Loading commit data... | |
jvspec.c | Loading commit data... | |
keyword.gperf | Loading commit data... | |
keyword.h | Loading commit data... | |
lang-options.h | Loading commit data... | |
lang-specs.h | Loading commit data... | |
lang.c | Loading commit data... | |
lex.c | Loading commit data... | |
lex.h | Loading commit data... | |
mangle.c | Loading commit data... | |
parse-scan.y | Loading commit data... | |
parse.h | Loading commit data... | |
parse.y | Loading commit data... | |
typeck.c | Loading commit data... | |
verify.c | Loading commit data... | |
xref.c | Loading commit data... | |
xref.h | Loading commit data... | |
zextract.c | Loading commit data... | |
zipfile.h | Loading commit data... |