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:
committed by
Bryce McKinlay
parent
712faa50dd
commit
f531010820
@@ -38,7 +38,7 @@ java::io::ObjectInputStream::allocateObject (jclass klass)
|
||||
obj = NULL;
|
||||
else
|
||||
{
|
||||
obj = JvAllocObject (klass);
|
||||
obj = _Jv_AllocObject (klass);
|
||||
}
|
||||
}
|
||||
catch (jthrowable t)
|
||||
|
||||
@@ -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__ */
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user