macros.
Used above two LLNI macros throughout the codebase:
* src/native/jni.c
* src/native/vm/java_lang_ClassLoader.c
* src/native/vm/cldc1.1/java_lang_Class.c
* src/native/vm/cldc1.1/java_lang_Object.c
* src/native/vm/java_lang_Class.c
* src/native/vm/java_lang_Object.c
* src/native/vm/gnu/java_lang_VMClassLoader.c
* src/native/vm/gnu/java_lang_VMClass.c
* src/native/vm/gnu/sun_reflect_ConstantPool.c
* src/native/vm/gnu/java_lang_reflect_Method.c
* src/native/vm/gnu/java_lang_reflect_Field.c
* src/native/vm/gnu/java_lang_VMThrowable.c
* src/native/vm/sun_misc_Unsafe.c
* src/native/vm/sun/jvm.c
* src/native/vm/reflect.c
* src/vmcore/loader.c
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: jni.c 8318 2007-08-16 10:05:34Z michi $
+ $Id: jni.c 8341 2007-08-17 21:32:01Z michi $
*/
TRACEJNICALLS("_Jv_JNI_GetSuperclass(env=%p, sub=%p)", env, sub);
- c = (classinfo *) sub;
+ c = LLNI_classinfo_unwrap(sub);
if (c == NULL)
return NULL;
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
if (msg == NULL)
msg = "";
s = javastring_new_from_utf_string(msg);
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
if ((c->flags & ACC_INTERFACE) || (c->flags & ACC_ABSTRACT)) {
exceptions_throw_instantiationexception(c);
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
/* create object */
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
/* create object */
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
/* create object */
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
if (c == NULL)
return NULL;
type ret; \
\
o = (java_handle_t *) obj; \
- c = (classinfo *) clazz; \
+ c = LLNI_classinfo_unwrap(clazz); \
m = (methodinfo *) methodID; \
\
va_start(ap, methodID); \
type ret; \
\
o = (java_handle_t *) obj; \
- c = (classinfo *) clazz; \
+ c = LLNI_classinfo_unwrap(clazz); \
m = (methodinfo *) methodID; \
\
ret = _Jv_jni_CallIntMethod(o, c->vftbl, m, args); \
va_list ap;
o = (java_handle_t *) obj;
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
va_start(ap, methodID);
java_handle_t *r;
o = (java_handle_t *) obj;
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
r = _Jv_jni_CallObjectMethod(o, c->vftbl, m, args);
va_list ap;
o = (java_handle_t *) obj;
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
va_start(ap, methodID);
methodinfo *m;
o = (java_handle_t *) obj;
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
_Jv_jni_CallVoidMethod(o, c->vftbl, m, args);
methodinfo *m;
o = (java_handle_t *) obj;
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
m = (methodinfo *) methodID;
_Jv_jni_CallVoidMethodA(o, c->vftbl, m, args);
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
/* XXX NPE check? */
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
if (!c)
return NULL;
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
uname = utf_new_char((char *) name);
usig = utf_new_char((char *) sig);
\
STATISTICS(jniinvokation()); \
\
- c = (classinfo *) clazz; \
+ c = LLNI_classinfo_unwrap(clazz); \
f = (fieldinfo *) fieldID; \
\
if (!(c->state & CLASS_INITIALIZED)) \
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
f = (fieldinfo *) fieldID;
if (!(c->state & CLASS_INITIALIZED))
\
STATISTICS(jniinvokation()); \
\
- c = (classinfo *) clazz; \
+ c = LLNI_classinfo_unwrap(clazz); \
f = (fieldinfo *) fieldID; \
\
if (!(c->state & CLASS_INITIALIZED)) \
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
f = (fieldinfo *) fieldID;
if (!(c->state & CLASS_INITIALIZED))
STATISTICS(jniinvokation());
- c = (classinfo *) elementClass;
+ c = LLNI_classinfo_unwrap(elementClass);
o = (java_handle_t *) initialElement;
if (length < 0) {
STATISTICS(jniinvokation());
- c = (classinfo *) clazz;
+ c = LLNI_classinfo_unwrap(clazz);
/* XXX: if implemented this needs a call to jvmti_NativeMethodBind
if (jvmti) jvmti_NativeMethodBind(method, address, new_address_ptr);
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: llni.h 8318 2007-08-16 10:05:34Z michi $
+ $Id: llni.h 8341 2007-08-17 21:32:01Z michi $
*/
#define LLNI_class_get(obj, variable) \
(variable) = LLNI_field_direct(obj, header.vftbl->class)
+
+/* LLNI classinfo wrapping / unwrapping macros *********************************
+
+ The following macros are used to wrap or unwrap a classinfo from
+ or into a handle (typically java_lang_Class).
+
+*******************************************************************************/
+
+#define LLNI_classinfo_wrap(classinfo) \
+ ((java_lang_Class *) (classinfo))
+
+#define LLNI_classinfo_unwrap(clazz) \
+ ((classinfo *) (clazz))
+
+
/* XXX the direct macros have to be used inside a critical section!!! */
#define LLNI_field_direct(obj, field) ((obj)->field)
classinfo *c;
java_handle_t *o;
- c = (classinfo *) this;
+ c = LLNI_classinfo_unwrap(this);
o = native_new_and_init(c);
c = o->vftbl->class;
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMClass.c 8340 2007-08-17 21:28:29Z twisti $
+ $Id: java_lang_VMClass.c 8341 2007-08-17 21:32:01Z michi $
*/
#include "vm/types.h"
#include "native/jni.h"
+#include "native/llni.h"
#include "native/native.h"
#include "native/include/java_lang_Class.h"
classinfo *c;
classinfo *component;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
component = class_get_componenttype(c);
- return (java_lang_Class *) component;
+ return LLNI_classinfo_wrap(component);
}
classinfo *c;
classinfo *result;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
result = class_get_enclosingclass(c);
- return (java_lang_Class *) result;
+ return LLNI_classinfo_wrap(result);
}
*/
JNIEXPORT int32_t JNICALL Java_java_lang_VMClass_isAnonymousClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
- return class_is_anonymousclass((classinfo *) klass);
+ return class_is_anonymousclass(LLNI_classinfo_unwrap(klass));
}
*/
JNIEXPORT int32_t JNICALL Java_java_lang_VMClass_isLocalClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
- return class_is_localclass((classinfo *) klass);
+ return class_is_localclass(LLNI_classinfo_unwrap(klass));
}
*/
JNIEXPORT int32_t JNICALL Java_java_lang_VMClass_isMemberClass(JNIEnv *env, jclass clazz, java_lang_Class *klass)
{
- return class_is_memberclass((classinfo *) klass);
+ return class_is_memberclass(LLNI_classinfo_unwrap(klass));
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMClassLoader.c 8318 2007-08-16 10:05:34Z michi $
+ $Id: java_lang_VMClassLoader.c 8341 2007-08-17 21:32:01Z michi $
*/
#include "mm/memory.h"
#include "native/jni.h"
+#include "native/llni.h"
#include "native/native.h"
#include "native/include/java_lang_Class.h"
#include "native/include/java_lang_String.h"
return NULL;
}
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
{
classinfo *ci;
- ci = (classinfo *) c;
+ ci = LLNI_classinfo_unwrap(c);
if (!ci) {
exceptions_throw_nullpointerexception();
if (!link_class(c))
return NULL;
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
if (c == NULL)
c = classcache_lookup(cl, u);
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_VMThrowable.c 8318 2007-08-16 10:05:34Z michi $
+ $Id: java_lang_VMThrowable.c 8341 2007-08-17 21:32:01Z michi $
*/
/* get declaring class name */
declaringclass =
- _Jv_java_lang_Class_getName((java_lang_Class *) ste->method->class);
+ _Jv_java_lang_Class_getName(LLNI_classinfo_wrap(ste->method->class));
/* fill the java.lang.StackTraceElement element */
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_reflect_Field.c 8326 2007-08-16 17:45:49Z twisti $
+ $Id: java_lang_reflect_Field.c 8341 2007-08-17 21:32:01Z michi $
*/
if (!resolve_class_from_typedesc(desc, true, false, &ret))
return NULL;
- return (java_lang_Class *) ret;
+ return LLNI_classinfo_wrap(ret);
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_reflect_Method.c 8326 2007-08-16 17:45:49Z twisti $
+ $Id: java_lang_reflect_Method.c 8341 2007-08-17 21:32:01Z michi $
*/
result = method_returntype_get(m);
- return (java_lang_Class *) result;
+ return LLNI_classinfo_wrap(result);
}
*/
JNIEXPORT int32_t JNICALL Java_sun_reflect_ConstantPool_getSize0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool)
{
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
return cls->cpcount;
}
JNIEXPORT struct java_lang_Class* JNICALL Java_sun_reflect_ConstantPool_getClassAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_classref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_classref*)class_getconstant(
cls, index, CONSTANT_Class);
return NULL;
}
- return (jclass)resolve_classref_eager(ref);
+ return LLNI_classinfo_wrap(resolve_classref_eager(ref));
}
{
constant_classref *ref;
classinfo *c = NULL;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_classref*)class_getconstant(
cls, index, CONSTANT_Class);
return NULL;
}
- return (jclass)c;
+ return LLNI_classinfo_wrap(c);
}
JNIEXPORT struct java_lang_reflect_Member* JNICALL Java_sun_reflect_ConstantPool_getMethodAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_FMIref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_FMIref*)class_getconstant(
cls, index, CONSTANT_Methodref);
{
constant_FMIref *ref;
classinfo *c = NULL;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_FMIref*)class_getconstant(
cls, index, CONSTANT_Methodref);
JNIEXPORT struct java_lang_reflect_Field* JNICALL Java_sun_reflect_ConstantPool_getFieldAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_FMIref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_FMIref*)class_getconstant(
cls, index, CONSTANT_Fieldref);
{
constant_FMIref *ref;
classinfo *c;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_FMIref*)class_getconstant(
cls, index, CONSTANT_Fieldref);
JNIEXPORT int32_t JNICALL Java_sun_reflect_ConstantPool_getIntAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_integer *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_integer*)class_getconstant(
cls, index, CONSTANT_Integer);
JNIEXPORT int64_t JNICALL Java_sun_reflect_ConstantPool_getLongAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_long *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_long*)class_getconstant(
cls, index, CONSTANT_Long);
JNIEXPORT float JNICALL Java_sun_reflect_ConstantPool_getFloatAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_float *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_float*)class_getconstant(
cls, index, CONSTANT_Float);
JNIEXPORT double JNICALL Java_sun_reflect_ConstantPool_getDoubleAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
constant_double *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (constant_double*)class_getconstant(
cls, index, CONSTANT_Double);
JNIEXPORT struct java_lang_String* JNICALL Java_sun_reflect_ConstantPool_getStringAt0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
utf *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (utf*)class_getconstant(cls, index, CONSTANT_String);
JNIEXPORT struct java_lang_String* JNICALL Java_sun_reflect_ConstantPool_getUTF8At0(JNIEnv *env, struct sun_reflect_ConstantPool* this, struct java_lang_Object* jcpool, int32_t index)
{
utf *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
ref = (utf*)class_getconstant(cls, index, CONSTANT_Utf8);
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_Class.c 8339 2007-08-17 21:21:51Z twisti $
+ $Id: java_lang_Class.c 8341 2007-08-17 21:32:01Z michi $
*/
java_chararray_t *ca;
u4 i;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
/* create a java string */
if (!initialize_class(c))
return NULL;
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
classinfo *c;
java_handle_t *ob;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
ob = (java_handle_t *) o;
if (!(c->state & CLASS_LINKED))
classinfo *kc;
classinfo *cc;
- kc = (classinfo *) klass;
- cc = (classinfo *) c;
+ kc = LLNI_classinfo_unwrap(klass);
+ cc = LLNI_classinfo_unwrap(c);
if (cc == NULL) {
exceptions_throw_nullpointerexception();
{
classinfo *c;
- c = (classinfo *) this;
+ c = LLNI_classinfo_unwrap(this);
return class_is_interface(c);
}
{
classinfo *c;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
return class_is_primitive(c);
}
classinfo *c;
classinfo *super;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
super = class_get_superclass(c);
- return (java_lang_Class *) super;
+ return LLNI_classinfo_wrap(super);
}
classinfo *c;
java_handle_objectarray_t *oa;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
oa = class_get_interfaces(c);
utf *innername;
s4 i;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
if (!ignoreInnerClassesAttrib && (c->innerclasscount != 0)) {
/* search for passed class as inner class */
java_lang_Class *_Jv_java_lang_Class_getDeclaringClass(java_lang_Class *klass)
{
classinfo *c;
+ classinfo *dc;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
- return (java_lang_Class *) class_get_declaringclass(c);
+ dc = class_get_declaringclass(c);
+
+ return LLNI_classinfo_wrap(dc);
}
classinfo *c;
java_handle_objectarray_t *oa;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
oa = class_get_declaredclasses(c, publicOnly);
s4 pos;
s4 i;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
/* determine number of fields */
s4 pos;
s4 i;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
public_methods = 0;
s4 pos;
s4 i;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
/* determine number of constructors */
{
classinfo *c;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
return (java_lang_ClassLoader *) c->classloader;
}
{
classinfo *c;
- c = (classinfo *) this;
+ c = LLNI_classinfo_unwrap(this);
return class_is_array(c);
}
*/
java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredAnnotations(java_lang_Class* klass)
{
- classinfo *c = (classinfo*)klass;
+ classinfo *c = LLNI_classinfo_unwrap(klass);
static methodinfo *m_parseAnnotationsIntoArray = NULL;
utf *utf_parseAnnotationsIntoArray = NULL;
utf *utf_desc = NULL;
methodinfo *m;
java_lang_reflect_Constructor *rc;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
/* get enclosing method */
methodinfo *m;
java_lang_reflect_Method *rm;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
/* get enclosing method */
classinfo *c;
java_handle_t *o;
- c = (classinfo *) klass;
+ c = LLNI_classinfo_unwrap(klass);
if (c->signature == NULL)
return NULL;
/* for convenience */
- o = (java_lang_Class *) c;
+ o = LLNI_classinfo_wrap(c);
#if defined(WITH_CLASSPATH_GNU)
/* set ProtectionDomain */
LLNI_class_get(obj, c);
- return (java_lang_Class *) c;
+ return LLNI_classinfo_wrap(c);
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: reflect.c 8322 2007-08-16 15:54:38Z twisti $
+ $Id: reflect.c 8341 2007-08-17 21:32:01Z michi $
*/
/* get declaring class */
- c = (classinfo *) m->class;
+ c = m->class;
/* allocate a new object */
/* get declaring class */
- c = (classinfo *) f->class;
+ c = f->class;
/* allocate a new object */
/* get declaring class */
- c = (classinfo *) m->class;
+ c = m->class;
/* allocate a new object */
/* get parameter count */
- c = (classinfo *)declaringClass;
+ c = LLNI_classinfo_unwrap(declaringClass);
m = &(c->methods[slot]);
numParameters = method_get_parametercount(m);
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: jvm.c 8333 2007-08-16 21:46:32Z pm $
+ $Id: jvm.c 8341 2007-08-17 21:32:01Z michi $
*/
/* get declaring class name */
declaringclass =
- _Jv_java_lang_Class_getName((java_lang_Class *) ste->method->class);
+ _Jv_java_lang_Class_getName(LLNI_classinfo_wrap(ste->method->class));
/* fill the java.lang.StackTraceElement element */
u = utf_new_char(s);
c = primitive_class_get_by_name(u);
- return (jclass) c;
+ return LLNI_classinfo_wrap(c);
}
if (!initialize_class(c))
return NULL;
- return (jclass) c;
+ return LLNI_classinfo_wrap(c);
}
#endif
/* XXX do something with pd and source */
- return (jclass) class_define(utf_new_char(name), (classloader *) loader, len, (u1 *) buf);
+ return LLNI_classinfo_wrap( class_define(utf_new_char(name), (classloader *) loader, len, (u1 *) buf) );
}
u = javastring_toutf((java_handle_t *) name, true);
c = classcache_lookup(cl, u);
- return (jclass) c;
+ return LLNI_classinfo_wrap(c);
}
TRACEJVMCALLS("JVM_GetClassInterfaces(env=%p, cls=%p)", env, cls);
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
oa = class_get_interfaces(c);
log_println("JVM_IsInterface: cls=%p", cls);
#endif
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
return class_is_interface(c);
}
log_println("JVM_GetProtectionDomain: cls=%p");
#endif
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
if (c == NULL) {
exceptions_throw_nullpointerexception();
#if PRINTJVM
log_println("JVM_IsArrayClass: cls=%p", cls);
#endif
- return class_is_array((classinfo *) cls);
+ return class_is_array(LLNI_classinfo_unwrap(cls));
}
{
classinfo *c;
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
#if PRINTJVM
log_println("JVM_IsPrimitiveClass(cls=%p)", cls);
TRACEJVMCALLS("JVM_GetComponentType(env=%p, cls=%p)", env, cls);
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
component = class_get_componenttype(c);
- return (jclass) component;
+ return LLNI_classinfo_wrap(component);
}
log_println("JVM_GetClassModifiers: cls=%p", cls);
#endif
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
/* XXX is this correct? */
TRACEJVMCALLS("JVM_GetDeclaredClasses(env=%p, ofClass=%p)", env, ofClass);
- c = (classinfo *) ofClass;
+ c = LLNI_classinfo_unwrap(ofClass);
oa = class_get_declaredclasses(c, false);
jclass JVM_GetDeclaringClass(JNIEnv *env, jclass ofClass)
{
- classinfo *c = (classinfo*)ofClass;
+ classinfo *c = LLNI_classinfo_unwrap(ofClass);
TRACEJVMCALLS("JVM_GetDeclaringClass: ofClass=%p", ofClass);
return NULL;
}
- return (jclass)class_get_declaringclass(c);
+ return LLNI_classinfo_wrap(class_get_declaringclass(c));
}
jbyteArray JVM_GetClassAnnotations(JNIEnv *env, jclass cls)
{
#if defined(ENABLE_ANNOTATIONS)
- classinfo *c = (classinfo*)cls;
+ classinfo *c = LLNI_classinfo_unwrap(cls);
java_handle_bytearray_t *annotations = NULL;
TRACEJVMCALLS("JVM_GetClassAnnotations: cls=%p", cls);
log_println("JVM_GetClassAccessFlags: cls=%p", cls);
#endif
- c = (classinfo *) cls;
+ c = LLNI_classinfo_unwrap(cls);
return c->flags & ACC_CLASS_REFLECT_MASK;
}
jint JVM_ConstantPoolGetSize(JNIEnv *env, jobject unused, jobject jcpool)
{
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetSize: jcpool=%p", jcpool);
return cls->cpcount;
}
jclass JVM_ConstantPoolGetClassAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_classref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetClassAt: jcpool=%p, index=%d", jcpool, index);
return NULL;
}
- return (jclass)resolve_classref_eager(ref);
+ return LLNI_classinfo_wrap(resolve_classref_eager(ref));
}
{
constant_classref *ref;
classinfo *c = NULL;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetClassAtIfLoaded: jcpool=%p, index=%d", jcpool, index);
return NULL;
}
- return (jclass)c;
+ return LLNI_classinfo_wrap(c);
}
jobject JVM_ConstantPoolGetMethodAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_FMIref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetMethodAt: jcpool=%p, index=%d", jcpool, index);
{
constant_FMIref *ref;
classinfo *c = NULL;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetMethodAtIfLoaded: jcpool=%p, index=%d", jcpool, index);
jobject JVM_ConstantPoolGetFieldAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_FMIref *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetFieldAt: jcpool=%p, index=%d", jcpool, index);
{
constant_FMIref *ref;
classinfo *c;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetFieldAtIfLoaded: jcpool=%p, index=%d", jcpool, index);
- ref = (constant_FMIref*)class_getconstant(
- (classinfo*)cls, index, CONSTANT_Fieldref);
+ ref = (constant_FMIref*)class_getconstant(cls, index, CONSTANT_Fieldref);
if (ref == NULL) {
return NULL;
jint JVM_ConstantPoolGetIntAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_integer *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetIntAt: jcpool=%p, index=%d", jcpool, index);
jlong JVM_ConstantPoolGetLongAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_long *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetLongAt: jcpool=%p, index=%d", jcpool, index);
jfloat JVM_ConstantPoolGetFloatAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_float *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetFloatAt: jcpool=%p, index=%d", jcpool, index);
jdouble JVM_ConstantPoolGetDoubleAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
constant_double *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetDoubleAt: jcpool=%p, index=%d", jcpool, index);
jstring JVM_ConstantPoolGetStringAt(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
utf *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetStringAt: jcpool=%p, index=%d", jcpool, index);
jstring JVM_ConstantPoolGetUTF8At(JNIEnv *env, jobject unused, jobject jcpool, jint index)
{
utf *ref;
- classinfo *cls = (classinfo*)jcpool;
+ classinfo *cls = LLNI_classinfo_unwrap(jcpool);
TRACEJVMCALLS("JVM_ConstantPoolGetUTF8At: jcpool=%p, index=%d", jcpool, index);
TRACEJVMCALLS("JVM_NewArray(env=%p, eltClass=%p, length=%d)", env, eltClass, length);
- c = (classinfo *) eltClass;
+ c = LLNI_classinfo_unwrap(eltClass);
/* create primitive or object array */
{
classinfo *c;
- c = (classinfo *) class;
+ c = LLNI_classinfo_unwrap(class);
if (!(c->state & CLASS_INITIALIZED))
initialize_class(c);
classinfo *c;
arraydescriptor *ad;
- c = (classinfo *) arrayClass;
+ c = LLNI_classinfo_unwrap(arrayClass);
ad = c->vftbl->arraydesc;
if (ad == NULL) {
classinfo *c;
arraydescriptor *ad;
- c = (classinfo *) arrayClass;
+ c = LLNI_classinfo_unwrap(arrayClass);
ad = c->vftbl->arraydesc;
if (ad == NULL) {
/* for convenience */
- o = (java_lang_Class *) c;
+ o = LLNI_classinfo_wrap(c);
#if defined(WITH_CLASSPATH_GNU)
/* set ProtectionDomain */
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: loader.c 8295 2007-08-11 17:57:24Z michi $
+ $Id: loader.c 8341 2007-08-17 21:32:01Z michi $
*/
#include "mm/memory.h"
+#include "native/llni.h"
+
#include "threads/lock-common.h"
#include "toolbox/logging.h"
RT_TIMING_GET_TIME(time_java);
- c = (classinfo *) o;
+ c = LLNI_classinfo_unwrap(o);
if (c != NULL) {
/* Store this class in the loaded class cache. If another