diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-20 01:38:46 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-20 01:38:46 +0000 |
commit | 0233d85fb83482c4f1aa201476ce5a929f132107 (patch) | |
tree | de88ceabf2ba85e265495894813895ad9f7f43cb /libjava/java | |
parent | 4c9902fbb7f18476b6358e4dcb2b09827bc6467b (diff) | |
download | ppe42-gcc-0233d85fb83482c4f1aa201476ce5a929f132107.tar.gz ppe42-gcc-0233d85fb83482c4f1aa201476ce5a929f132107.zip |
2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
* class.c (make_class_data): Add new field aux_info.
* decl.c (java_init_decl_processing): Push type and decl for
`aux_info'.
2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
* gcj/cni.h (JvAllocObject): Remove these obsolete,
undocumented CNI calls.
* include/java-interp.h (_Jv_InterpClass): No longer
extends java.lang.Class.
* java/lang/Class.h (Class): Add new field `aux_info'.
* boehm.cc (_Jv_MarkObj): Update java.lang.Class marking.
* defineclass.cc: Remove Class<->_Jv_InterpClass casts.
Use Class->aux_info instead.
* jni.cc (_Jv_JNI_AllocObject): Use _Jv_AllocObject.
* resolve.cc: Remove Class<->_Jv_InterpClass casts.
Use Class->aux_info instead.
* java/io/natObjectInputStream.cc (allocateObject): Use
_Jv_AllocObject.
* java/lang/natClass.cc (newInstance): Likewise.
* java/lang/natClassLoader.cc (_Jv_NewClass): Likewise.
* java/lang/natObject.cc (clone): Likewise.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
* java/lang/natVMClassLoader.cc (defineClass): Don't use
JvAllocObject. Allocate klass->aux_info here for interpreted
class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80875 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/io/natObjectInputStream.cc | 2 | ||||
-rw-r--r-- | libjava/java/lang/Class.h | 4 | ||||
-rw-r--r-- | libjava/java/lang/natClass.cc | 4 | ||||
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 2 | ||||
-rw-r--r-- | libjava/java/lang/natObject.cc | 2 | ||||
-rw-r--r-- | libjava/java/lang/natVMClassLoader.cc | 4 | ||||
-rw-r--r-- | libjava/java/lang/reflect/natMethod.cc | 2 |
7 files changed, 12 insertions, 8 deletions
diff --git a/libjava/java/io/natObjectInputStream.cc b/libjava/java/io/natObjectInputStream.cc index 8b84e7e3199..bb3796ff4fa 100644 --- a/libjava/java/io/natObjectInputStream.cc +++ b/libjava/java/io/natObjectInputStream.cc @@ -38,7 +38,7 @@ java::io::ObjectInputStream::allocateObject (jclass klass) obj = NULL; else { - obj = JvAllocObject (klass); + obj = _Jv_AllocObject (klass); } } catch (jthrowable t) diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index b8a8d90fa0a..86dc6a079db 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -384,6 +384,7 @@ private: #endif friend class _Jv_BytecodeVerifier; + friend class _Jv_StackTrace; friend class gnu::gcj::runtime::StackTrace; friend class java::io::VMObjectStreamClass; @@ -449,6 +450,9 @@ private: JArray<jobject> *hack_signers; // Used by Jv_PopClass and _Jv_PushClass to communicate with StackTrace. jclass chain; + // Additional data, specific to the generator (JIT, native, interpreter) of this + // class. + void *aux_info; }; #endif /* __JAVA_LANG_CLASS_H__ */ diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index c11d2a15340..419ed7d9d29 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -691,7 +691,7 @@ java::lang::Class::newInstance (void) if (! meth) throw new java::lang::InstantiationException (getName()); - jobject r = JvAllocObject (this); + jobject r = _Jv_AllocObject (this); ((void (*) (jobject)) meth->ncode) (r); return r; } @@ -1901,7 +1901,7 @@ _Jv_MakeVTable (jclass klass) || (klass->accflags & Modifier::ABSTRACT)) return; - // out before we can create a vtable. + // Class must be laid out before we can create a vtable. if (klass->vtable_method_count == -1) _Jv_LayoutVTableMethods (klass); diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index f5f37faf58b..9921d1d10e3 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -419,7 +419,7 @@ jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass, java::lang::ClassLoader *loader) { - jclass ret = (jclass) JvAllocObject (&java::lang::Class::class$); + jclass ret = (jclass) _Jv_AllocObject (&java::lang::Class::class$); ret->name = name; ret->superclass = superclass; ret->loader = loader; diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc index 8618bf2c7a3..5855fc18934 100644 --- a/libjava/java/lang/natObject.cc +++ b/libjava/java/lang/natObject.cc @@ -98,7 +98,7 @@ java::lang::Object::clone (void) throw new CloneNotSupportedException; size = klass->size(); - r = JvAllocObject (klass, size); + r = _Jv_AllocObject (klass); } memcpy ((void *) r, (void *) this, size); diff --git a/libjava/java/lang/natVMClassLoader.cc b/libjava/java/lang/natVMClassLoader.cc index 8de0a70669e..1ed3851fbb3 100644 --- a/libjava/java/lang/natVMClassLoader.cc +++ b/libjava/java/lang/natVMClassLoader.cc @@ -39,8 +39,8 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader, { #ifdef INTERPRETER jclass klass; - klass = (jclass) JvAllocObject (&java::lang::Class::class$, - sizeof (_Jv_InterpClass)); + klass = new java::lang::Class (); + klass->aux_info = (void *) _Jv_AllocBytes (sizeof (_Jv_InterpClass)); // Synchronize on the class, so that it is not attempted initialized // until we're done loading. diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc index 96d293bf241..8f9efdbb53b 100644 --- a/libjava/java/lang/reflect/natMethod.cc +++ b/libjava/java/lang/reflect/natMethod.cc @@ -379,7 +379,7 @@ _Jv_CallAnyMethodA (jobject obj, // the JDK 1.2 docs specify that the new object must be allocated // before argument conversions are done. if (is_constructor) - obj = JvAllocObject (return_type); + obj = _Jv_AllocObject (return_type); const int size_per_arg = sizeof(jvalue); ffi_cif cif; |