diff options
author | Andrew Haley <aph@redhat.com> | 2002-12-03 13:50:05 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2002-12-03 13:50:05 +0000 |
commit | 421f9e6091ca35352c825e7ec69439b3651da021 (patch) | |
tree | 635e8205b478433021057fc6be1683b642acf907 /gcc | |
parent | ee7ecb2924a9995adc324905836cd7207ce43747 (diff) | |
download | gcc-421f9e6091ca35352c825e7ec69439b3651da021.zip gcc-421f9e6091ca35352c825e7ec69439b3651da021.tar.gz gcc-421f9e6091ca35352c825e7ec69439b3651da021.tar.bz2 |
natClassLoader.cc (_Jv_PrepareCompiledClass): Call _Jv_PushClass.
2002-12-03 Andrew Haley <aph@redhat.com>
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
_Jv_PushClass.
(_Jv_InitNewClassFields): Set protectionDomain and chain = NULL.
(_Jv_PopClass): New.
(_Jv_PushClass): New.
* java/lang/natClass.cc (forName (jstring)): Use a StackTrace to
discover the ClassLoader of our caller.
(_Jv_CheckArrayStore): Don't check that a class is assignment
compatible with Object.
* java/lang/natVMTHrowable.cc: Delete.
* gnu/gcj/runtime/StackTrace.java: New, partly copied from
java.lang.VMThrowable.
(StackTrace(), StackTrace(int)): New constructors.
(classAt, methodAt, update, methodAtAddress): New methods.
(map): New field.
* java/lang/VMThrowable.java: Use StackTrace instead of
natVMTHrowable.
* java/lang/Class.h (getClassLoaderInternal): New.
(class Class): Be friendly with _Jv_PopClass and _Jv_PushClass.
Be friendly with gnu::gcj::runtime::StackTrace.
(Object.chain): New field.
* include/java-interp.h (class _Jv_InterpMethod): Be friendly with
gnu::gcj::runtime::StackTrace.
* prims.cc (_Jv_NewObjectArray): Use getClassLoaderInternal()
instead of getClassLoader().
* verify.cc (class _Jv_BytecodeVerifier): Likewise.
java::lang::VMThrowable.
* Makefile.am (core_java_source_files): Add MethodRef.java,
StackTrace.java.
(nat_source_files): Remove natVMThrowable.cc; add natStackTrace.cc.
* Makefile.in: Rebuild.
2002-12-03 Andrew Haley <aph@redhat.com>
* class.c (make_class_data): New field, "chain".
* decl.c (java_init_decl_processing): Likewise.
From-SVN: r59769
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/java/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/java/class.c | 1 | ||||
-rw-r--r-- | gcc/java/decl.c | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index b6168b0..afe7b64 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2002-12-03 Andrew Haley <aph@redhat.com> + + * class.c (make_class_data): New field, "chain". + * decl.c (java_init_decl_processing): Likewise. + 2002-12-02 Tom Tromey <tromey@redhat.com> For PR java/8740: diff --git a/gcc/java/class.c b/gcc/java/class.c index 5df0ffc..bec8d0c 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -1665,6 +1665,7 @@ make_class_data (type) PUSH_FIELD_VALUE (cons, "idt", null_pointer_node); PUSH_FIELD_VALUE (cons, "arrayclass", null_pointer_node); PUSH_FIELD_VALUE (cons, "protectionDomain", null_pointer_node); + PUSH_FIELD_VALUE (cons, "chain", null_pointer_node); FINISH_RECORD_CONSTRUCTOR (cons); diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 5aa8a91..41aea0c 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -708,6 +708,7 @@ java_init_decl_processing () PUSH_FIELD (class_type_node, field, "idt", ptr_type_node); PUSH_FIELD (class_type_node, field, "arrayclass", ptr_type_node); PUSH_FIELD (class_type_node, field, "protectionDomain", ptr_type_node); + PUSH_FIELD (class_type_node, field, "chain", ptr_type_node); for (t = TYPE_FIELDS (class_type_node); t != NULL_TREE; t = TREE_CHAIN (t)) FIELD_PRIVATE (t) = 1; push_super_field (class_type_node, object_type_node); |