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
This commit is contained in:
Bryce McKinlay
2004-04-20 01:38:46 +00:00
committed by Bryce McKinlay
parent 712faa50dd
commit f531010820
17 changed files with 113 additions and 82 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ java::io::ObjectInputStream::allocateObject (jclass klass)
obj = NULL;
else
{
obj = JvAllocObject (klass);
obj = _Jv_AllocObject (klass);
}
}
catch (jthrowable t)
+4
View File
@@ -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__ */
+2 -2
View File
@@ -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);
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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.
+1 -1
View File
@@ -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;