diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2004-04-20 01:38:46 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2004-04-20 02:38:46 +0100 |
commit | f531010820afc86bde3e7d4b98850ee51c735de5 (patch) | |
tree | de88ceabf2ba85e265495894813895ad9f7f43cb /libjava/java | |
parent | 712faa50dd829c2e813a7169ef71ec20a6465666 (diff) | |
download | gcc-f531010820afc86bde3e7d4b98850ee51c735de5.zip gcc-f531010820afc86bde3e7d4b98850ee51c735de5.tar.gz gcc-f531010820afc86bde3e7d4b98850ee51c735de5.tar.bz2 |
class.c (make_class_data): Add new field aux_info.
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.
From-SVN: r80875
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 8b84e7e..bb3796f 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 b8a8d90..86dc6a0 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 c11d2a1..419ed7d 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 f5f37fa..9921d1d 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 8618bf2..5855fc1 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 8de0a70..1ed3851 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 96d293b..8f9efdb 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; |