From 254344cd65a2bf0279f91803843a950020c3b7b0 Mon Sep 17 00:00:00 2001 From: michi Date: Fri, 17 Aug 2007 21:32:01 +0000 Subject: [PATCH] * src/native/llni.h (LLNI_classinfo_wrap, LLNI_classinfo_unwrap): Added new 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 --- src/native/jni.c | 48 ++++++------- src/native/llni.h | 17 ++++- src/native/vm/cldc1.1/java_lang_Class.c | 2 +- src/native/vm/cldc1.1/java_lang_Object.c | 2 +- src/native/vm/gnu/java_lang_VMClass.c | 17 ++--- src/native/vm/gnu/java_lang_VMClassLoader.c | 11 +-- src/native/vm/gnu/java_lang_VMThrowable.c | 4 +- src/native/vm/gnu/java_lang_reflect_Field.c | 4 +- src/native/vm/gnu/java_lang_reflect_Method.c | 4 +- src/native/vm/gnu/sun_reflect_ConstantPool.c | 30 ++++---- src/native/vm/java_lang_Class.c | 51 +++++++------- src/native/vm/java_lang_ClassLoader.c | 2 +- src/native/vm/java_lang_Object.c | 2 +- src/native/vm/reflect.c | 10 +-- src/native/vm/sun/jvm.c | 73 ++++++++++---------- src/native/vm/sun_misc_Unsafe.c | 8 +-- src/vmcore/loader.c | 6 +- 17 files changed, 156 insertions(+), 135 deletions(-) diff --git a/src/native/jni.c b/src/native/jni.c index aa7dbe6b6..168d740c1 100644 --- a/src/native/jni.c +++ b/src/native/jni.c @@ -22,7 +22,7 @@ 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 $ */ @@ -1028,7 +1028,7 @@ jclass _Jv_JNI_GetSuperclass(JNIEnv *env, jclass sub) TRACEJNICALLS("_Jv_JNI_GetSuperclass(env=%p, sub=%p)", env, sub); - c = (classinfo *) sub; + c = LLNI_classinfo_unwrap(sub); if (c == NULL) return NULL; @@ -1095,7 +1095,7 @@ jint _Jv_JNI_ThrowNew(JNIEnv* env, jclass clazz, const char *msg) STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); if (msg == NULL) msg = ""; s = javastring_new_from_utf_string(msg); @@ -1406,7 +1406,7 @@ jobject _Jv_JNI_AllocObject(JNIEnv *env, jclass clazz) STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); if ((c->flags & ACC_INTERFACE) || (c->flags & ACC_ABSTRACT)) { exceptions_throw_instantiationexception(c); @@ -1437,7 +1437,7 @@ jobject _Jv_JNI_NewObject(JNIEnv *env, jclass clazz, jmethodID methodID, ...) STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); m = (methodinfo *) methodID; /* create object */ @@ -1476,7 +1476,7 @@ jobject _Jv_JNI_NewObjectV(JNIEnv* env, jclass clazz, jmethodID methodID, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); m = (methodinfo *) methodID; /* create object */ @@ -1513,7 +1513,7 @@ jobject _Jv_JNI_NewObjectA(JNIEnv* env, jclass clazz, jmethodID methodID, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); m = (methodinfo *) methodID; /* create object */ @@ -1750,7 +1750,7 @@ jmethodID _Jv_JNI_GetMethodID(JNIEnv* env, jclass clazz, const char *name, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); if (c == NULL) return NULL; @@ -1966,7 +1966,7 @@ type _Jv_JNI_CallNonvirtual##name##Method(JNIEnv *env, jobject obj, \ type ret; \ \ o = (java_handle_t *) obj; \ - c = (classinfo *) clazz; \ + c = LLNI_classinfo_unwrap(clazz); \ m = (methodinfo *) methodID; \ \ va_start(ap, methodID); \ @@ -1997,7 +1997,7 @@ type _Jv_JNI_CallNonvirtual##name##MethodV(JNIEnv *env, jobject obj, \ 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); \ @@ -2045,7 +2045,7 @@ jobject _Jv_JNI_CallNonvirtualObjectMethod(JNIEnv *env, jobject obj, va_list ap; o = (java_handle_t *) obj; - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); m = (methodinfo *) methodID; va_start(ap, methodID); @@ -2066,7 +2066,7 @@ jobject _Jv_JNI_CallNonvirtualObjectMethodV(JNIEnv *env, jobject obj, 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); @@ -2094,7 +2094,7 @@ void _Jv_JNI_CallNonvirtualVoidMethod(JNIEnv *env, jobject obj, jclass clazz, va_list ap; o = (java_handle_t *) obj; - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); m = (methodinfo *) methodID; va_start(ap, methodID); @@ -2111,7 +2111,7 @@ void _Jv_JNI_CallNonvirtualVoidMethodV(JNIEnv *env, jobject obj, jclass clazz, 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); @@ -2126,7 +2126,7 @@ void _Jv_JNI_CallNonvirtualVoidMethodA(JNIEnv *env, jobject obj, jclass clazz, 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); @@ -2154,7 +2154,7 @@ jfieldID _Jv_JNI_GetFieldID(JNIEnv *env, jclass clazz, const char *name, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); /* XXX NPE check? */ @@ -2272,7 +2272,7 @@ jmethodID _Jv_JNI_GetStaticMethodID(JNIEnv *env, jclass clazz, const char *name, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); if (!c) return NULL; @@ -2475,7 +2475,7 @@ jfieldID _Jv_JNI_GetStaticFieldID(JNIEnv *env, jclass clazz, const char *name, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); uname = utf_new_char((char *) name); usig = utf_new_char((char *) sig); @@ -2505,7 +2505,7 @@ type _Jv_JNI_GetStatic##name##Field(JNIEnv *env, jclass clazz, \ \ STATISTICS(jniinvokation()); \ \ - c = (classinfo *) clazz; \ + c = LLNI_classinfo_unwrap(clazz); \ f = (fieldinfo *) fieldID; \ \ if (!(c->state & CLASS_INITIALIZED)) \ @@ -2533,7 +2533,7 @@ jobject _Jv_JNI_GetStaticObjectField(JNIEnv *env, jclass clazz, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); f = (fieldinfo *) fieldID; if (!(c->state & CLASS_INITIALIZED)) @@ -2561,7 +2561,7 @@ void _Jv_JNI_SetStatic##name##Field(JNIEnv *env, jclass clazz, \ \ STATISTICS(jniinvokation()); \ \ - c = (classinfo *) clazz; \ + c = LLNI_classinfo_unwrap(clazz); \ f = (fieldinfo *) fieldID; \ \ if (!(c->state & CLASS_INITIALIZED)) \ @@ -2589,7 +2589,7 @@ void _Jv_JNI_SetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID, STATISTICS(jniinvokation()); - c = (classinfo *) clazz; + c = LLNI_classinfo_unwrap(clazz); f = (fieldinfo *) fieldID; if (!(c->state & CLASS_INITIALIZED)) @@ -2879,7 +2879,7 @@ jobjectArray _Jv_JNI_NewObjectArray(JNIEnv *env, jsize length, STATISTICS(jniinvokation()); - c = (classinfo *) elementClass; + c = LLNI_classinfo_unwrap(elementClass); o = (java_handle_t *) initialElement; if (length < 0) { @@ -3139,7 +3139,7 @@ jint _Jv_JNI_RegisterNatives(JNIEnv *env, jclass clazz, 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); diff --git a/src/native/llni.h b/src/native/llni.h index 9fe598993..9e814abce 100644 --- a/src/native/llni.h +++ b/src/native/llni.h @@ -22,7 +22,7 @@ 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 $ */ @@ -72,6 +72,21 @@ #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) diff --git a/src/native/vm/cldc1.1/java_lang_Class.c b/src/native/vm/cldc1.1/java_lang_Class.c index 1a6a39af2..84aa99b4b 100644 --- a/src/native/vm/cldc1.1/java_lang_Class.c +++ b/src/native/vm/cldc1.1/java_lang_Class.c @@ -90,7 +90,7 @@ JNIEXPORT java_lang_Object* JNICALL Java_java_lang_Class_newInstance(JNIEnv *env classinfo *c; java_handle_t *o; - c = (classinfo *) this; + c = LLNI_classinfo_unwrap(this); o = native_new_and_init(c); diff --git a/src/native/vm/cldc1.1/java_lang_Object.c b/src/native/vm/cldc1.1/java_lang_Object.c index d9b844af8..bcc1d8373 100644 --- a/src/native/vm/cldc1.1/java_lang_Object.c +++ b/src/native/vm/cldc1.1/java_lang_Object.c @@ -88,7 +88,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_Object_getClass(JNIEnv *env, j c = o->vftbl->class; - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } diff --git a/src/native/vm/gnu/java_lang_VMClass.c b/src/native/vm/gnu/java_lang_VMClass.c index e562d3644..36a768b4c 100644 --- a/src/native/vm/gnu/java_lang_VMClass.c +++ b/src/native/vm/gnu/java_lang_VMClass.c @@ -22,7 +22,7 @@ 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 $ */ @@ -34,6 +34,7 @@ #include "vm/types.h" #include "native/jni.h" +#include "native/llni.h" #include "native/native.h" #include "native/include/java_lang_Class.h" @@ -187,11 +188,11 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getComponentType(JNIEn 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); } @@ -328,11 +329,11 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClass_getEnclosingClass(JNIE 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); } @@ -376,7 +377,7 @@ JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMClass_getClassSignature(JNI */ 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)); } @@ -387,7 +388,7 @@ JNIEXPORT int32_t JNICALL Java_java_lang_VMClass_isAnonymousClass(JNIEnv *env, j */ 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)); } @@ -398,7 +399,7 @@ JNIEXPORT int32_t JNICALL Java_java_lang_VMClass_isLocalClass(JNIEnv *env, jclas */ 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)); } diff --git a/src/native/vm/gnu/java_lang_VMClassLoader.c b/src/native/vm/gnu/java_lang_VMClassLoader.c index 59832c0ef..f7273977f 100644 --- a/src/native/vm/gnu/java_lang_VMClassLoader.c +++ b/src/native/vm/gnu/java_lang_VMClassLoader.c @@ -22,7 +22,7 @@ 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 $ */ @@ -36,6 +36,7 @@ #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" @@ -128,7 +129,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClassLoader_getPrimitiveClas return NULL; } - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } @@ -141,7 +142,7 @@ JNIEXPORT void JNICALL Java_java_lang_VMClassLoader_resolveClass(JNIEnv *env, jc { classinfo *ci; - ci = (classinfo *) c; + ci = LLNI_classinfo_unwrap(c); if (!ci) { exceptions_throw_nullpointerexception(); @@ -189,7 +190,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClassLoader_loadClass(JNIEnv if (!link_class(c)) return NULL; - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } @@ -374,7 +375,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClassLoader_findLoadedClass( if (c == NULL) c = classcache_lookup(cl, u); - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } diff --git a/src/native/vm/gnu/java_lang_VMThrowable.c b/src/native/vm/gnu/java_lang_VMThrowable.c index e7d282e59..47791faf2 100644 --- a/src/native/vm/gnu/java_lang_VMThrowable.c +++ b/src/native/vm/gnu/java_lang_VMThrowable.c @@ -22,7 +22,7 @@ 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 $ */ @@ -253,7 +253,7 @@ JNIEXPORT java_handle_objectarray_t* JNICALL Java_java_lang_VMThrowable_getStack /* 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 */ diff --git a/src/native/vm/gnu/java_lang_reflect_Field.c b/src/native/vm/gnu/java_lang_reflect_Field.c index a45d4d09e..58b3b2840 100644 --- a/src/native/vm/gnu/java_lang_reflect_Field.c +++ b/src/native/vm/gnu/java_lang_reflect_Field.c @@ -22,7 +22,7 @@ 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 $ */ @@ -230,7 +230,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_reflect_Field_getType(JNIEnv * if (!resolve_class_from_typedesc(desc, true, false, &ret)) return NULL; - return (java_lang_Class *) ret; + return LLNI_classinfo_wrap(ret); } diff --git a/src/native/vm/gnu/java_lang_reflect_Method.c b/src/native/vm/gnu/java_lang_reflect_Method.c index 5fe2235b1..ee46c33ce 100644 --- a/src/native/vm/gnu/java_lang_reflect_Method.c +++ b/src/native/vm/gnu/java_lang_reflect_Method.c @@ -22,7 +22,7 @@ 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 $ */ @@ -135,7 +135,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_reflect_Method_getReturnType(J result = method_returntype_get(m); - return (java_lang_Class *) result; + return LLNI_classinfo_wrap(result); } diff --git a/src/native/vm/gnu/sun_reflect_ConstantPool.c b/src/native/vm/gnu/sun_reflect_ConstantPool.c index b607fe2e7..77030ca4e 100644 --- a/src/native/vm/gnu/sun_reflect_ConstantPool.c +++ b/src/native/vm/gnu/sun_reflect_ConstantPool.c @@ -93,7 +93,7 @@ void _Jv_sun_reflect_ConstantPool_init(void) */ 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; } @@ -106,7 +106,7 @@ JNIEXPORT int32_t JNICALL Java_sun_reflect_ConstantPool_getSize0(JNIEnv *env, st 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); @@ -115,7 +115,7 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_sun_reflect_ConstantPool_getClass return NULL; } - return (jclass)resolve_classref_eager(ref); + return LLNI_classinfo_wrap(resolve_classref_eager(ref)); } @@ -128,7 +128,7 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_sun_reflect_ConstantPool_getClass { 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); @@ -145,7 +145,7 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_sun_reflect_ConstantPool_getClass return NULL; } - return (jclass)c; + return LLNI_classinfo_wrap(c); } @@ -157,7 +157,7 @@ JNIEXPORT struct java_lang_Class* JNICALL Java_sun_reflect_ConstantPool_getClass 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); @@ -180,7 +180,7 @@ JNIEXPORT struct java_lang_reflect_Member* JNICALL Java_sun_reflect_ConstantPool { 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); @@ -209,7 +209,7 @@ JNIEXPORT struct java_lang_reflect_Member* JNICALL Java_sun_reflect_ConstantPool 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); @@ -231,7 +231,7 @@ JNIEXPORT struct java_lang_reflect_Field* JNICALL Java_sun_reflect_ConstantPool_ { constant_FMIref *ref; classinfo *c; - classinfo *cls = (classinfo*)jcpool; + classinfo *cls = LLNI_classinfo_unwrap(jcpool); ref = (constant_FMIref*)class_getconstant( cls, index, CONSTANT_Fieldref); @@ -272,7 +272,7 @@ JNIEXPORT java_handle_objectarray_t* JNICALL Java_sun_reflect_ConstantPool_getMe 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); @@ -293,7 +293,7 @@ JNIEXPORT int32_t JNICALL Java_sun_reflect_ConstantPool_getIntAt0(JNIEnv *env, s 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); @@ -314,7 +314,7 @@ JNIEXPORT int64_t JNICALL Java_sun_reflect_ConstantPool_getLongAt0(JNIEnv *env, 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); @@ -335,7 +335,7 @@ JNIEXPORT float JNICALL Java_sun_reflect_ConstantPool_getFloatAt0(JNIEnv *env, s 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); @@ -356,7 +356,7 @@ JNIEXPORT double JNICALL Java_sun_reflect_ConstantPool_getDoubleAt0(JNIEnv *env, 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); @@ -377,7 +377,7 @@ JNIEXPORT struct java_lang_String* JNICALL Java_sun_reflect_ConstantPool_getStri 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); diff --git a/src/native/vm/java_lang_Class.c b/src/native/vm/java_lang_Class.c index ed55b58d8..bc6f69a2e 100644 --- a/src/native/vm/java_lang_Class.c +++ b/src/native/vm/java_lang_Class.c @@ -22,7 +22,7 @@ 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 $ */ @@ -99,7 +99,7 @@ java_lang_String *_Jv_java_lang_Class_getName(java_lang_Class *klass) java_chararray_t *ca; u4 i; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); /* create a java string */ @@ -190,7 +190,7 @@ java_lang_Class *_Jv_java_lang_Class_forName(java_lang_String *name) if (!initialize_class(c)) return NULL; - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } @@ -204,7 +204,7 @@ s4 _Jv_java_lang_Class_isInstance(java_lang_Class *klass, java_lang_Object *o) classinfo *c; java_handle_t *ob; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); ob = (java_handle_t *) o; if (!(c->state & CLASS_LINKED)) @@ -225,8 +225,8 @@ s4 _Jv_java_lang_Class_isAssignableFrom(java_lang_Class *klass, java_lang_Class 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(); @@ -254,7 +254,7 @@ JNIEXPORT int32_t JNICALL _Jv_java_lang_Class_isInterface(JNIEnv *env, java_lang { classinfo *c; - c = (classinfo *) this; + c = LLNI_classinfo_unwrap(this); return class_is_interface(c); } @@ -271,7 +271,7 @@ s4 _Jv_java_lang_Class_isPrimitive(java_lang_Class *klass) { classinfo *c; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); return class_is_primitive(c); } @@ -287,11 +287,11 @@ java_lang_Class *_Jv_java_lang_Class_getSuperclass(java_lang_Class *klass) 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); } @@ -305,7 +305,7 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getInterfaces(java_lang_Class *kl classinfo *c; java_handle_objectarray_t *oa; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); oa = class_get_interfaces(c); @@ -326,7 +326,7 @@ s4 _Jv_java_lang_Class_getModifiers(java_lang_Class *klass, s4 ignoreInnerClasse utf *innername; s4 i; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); if (!ignoreInnerClassesAttrib && (c->innerclasscount != 0)) { /* search for passed class as inner class */ @@ -368,10 +368,13 @@ s4 _Jv_java_lang_Class_getModifiers(java_lang_Class *klass, s4 ignoreInnerClasse 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); } @@ -385,7 +388,7 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredClasses(java_lang_Clas classinfo *c; java_handle_objectarray_t *oa; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); oa = class_get_declaredclasses(c, publicOnly); @@ -408,7 +411,7 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredFields(java_lang_Class s4 pos; s4 i; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); /* determine number of fields */ @@ -459,7 +462,7 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredMethods(java_lang_Clas s4 pos; s4 i; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); public_methods = 0; @@ -523,7 +526,7 @@ java_handle_objectarray_t *_Jv_java_lang_Class_getDeclaredConstructors(java_lang s4 pos; s4 i; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); /* determine number of constructors */ @@ -569,7 +572,7 @@ java_lang_ClassLoader *_Jv_java_lang_Class_getClassLoader(java_lang_Class *klass { classinfo *c; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); return (java_lang_ClassLoader *) c->classloader; } @@ -586,7 +589,7 @@ JNIEXPORT int32_t JNICALL _Jv_java_lang_Class_isArray(JNIEnv *env, java_lang_Cla { classinfo *c; - c = (classinfo *) this; + c = LLNI_classinfo_unwrap(this); return class_is_array(c); } @@ -617,7 +620,7 @@ void _Jv_java_lang_Class_throwException(java_lang_Throwable *t) */ 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; @@ -738,7 +741,7 @@ java_lang_reflect_Constructor *_Jv_java_lang_Class_getEnclosingConstructor(java_ methodinfo *m; java_lang_reflect_Constructor *rc; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); /* get enclosing method */ @@ -771,7 +774,7 @@ java_lang_reflect_Method *_Jv_java_lang_Class_getEnclosingMethod(java_lang_Class methodinfo *m; java_lang_reflect_Method *rm; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); /* get enclosing method */ @@ -803,7 +806,7 @@ java_lang_String *_Jv_java_lang_Class_getClassSignature(java_lang_Class* klass) classinfo *c; java_handle_t *o; - c = (classinfo *) klass; + c = LLNI_classinfo_unwrap(klass); if (c->signature == NULL) return NULL; diff --git a/src/native/vm/java_lang_ClassLoader.c b/src/native/vm/java_lang_ClassLoader.c index 78e3c8321..8bed06855 100644 --- a/src/native/vm/java_lang_ClassLoader.c +++ b/src/native/vm/java_lang_ClassLoader.c @@ -136,7 +136,7 @@ java_lang_Class *_Jv_java_lang_ClassLoader_defineClass(java_lang_ClassLoader *cl /* for convenience */ - o = (java_lang_Class *) c; + o = LLNI_classinfo_wrap(c); #if defined(WITH_CLASSPATH_GNU) /* set ProtectionDomain */ diff --git a/src/native/vm/java_lang_Object.c b/src/native/vm/java_lang_Object.c index f5ff5afa7..191ed2448 100644 --- a/src/native/vm/java_lang_Object.c +++ b/src/native/vm/java_lang_Object.c @@ -78,7 +78,7 @@ java_lang_Class *_Jv_java_lang_Object_getClass(java_lang_Object *obj) LLNI_class_get(obj, c); - return (java_lang_Class *) c; + return LLNI_classinfo_wrap(c); } diff --git a/src/native/vm/reflect.c b/src/native/vm/reflect.c index fa8d88066..ecb3caa62 100644 --- a/src/native/vm/reflect.c +++ b/src/native/vm/reflect.c @@ -22,7 +22,7 @@ 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 $ */ @@ -86,7 +86,7 @@ java_lang_reflect_Constructor *reflect_constructor_new(methodinfo *m) /* get declaring class */ - c = (classinfo *) m->class; + c = m->class; /* allocate a new object */ @@ -145,7 +145,7 @@ java_lang_reflect_Field *reflect_field_new(fieldinfo *f) /* get declaring class */ - c = (classinfo *) f->class; + c = f->class; /* allocate a new object */ @@ -211,7 +211,7 @@ java_lang_reflect_Method *reflect_method_new(methodinfo *m) /* get declaring class */ - c = (classinfo *) m->class; + c = m->class; /* allocate a new object */ @@ -365,7 +365,7 @@ java_handle_objectarray_t* reflect_get_parameterannotations( /* get parameter count */ - c = (classinfo *)declaringClass; + c = LLNI_classinfo_unwrap(declaringClass); m = &(c->methods[slot]); numParameters = method_get_parametercount(m); diff --git a/src/native/vm/sun/jvm.c b/src/native/vm/sun/jvm.c index a61b153c2..d036f0566 100644 --- a/src/native/vm/sun/jvm.c +++ b/src/native/vm/sun/jvm.c @@ -22,7 +22,7 @@ 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 $ */ @@ -466,7 +466,7 @@ jobject JVM_GetStackTraceElement(JNIEnv *env, jobject throwable, jint index) /* 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 */ @@ -664,7 +664,7 @@ jclass JVM_FindPrimitiveClass(JNIEnv* env, const char* s) u = utf_new_char(s); c = primitive_class_get_by_name(u); - return (jclass) c; + return LLNI_classinfo_wrap(c); } @@ -696,7 +696,7 @@ jclass JVM_FindClassFromClassLoader(JNIEnv* env, const char* name, jboolean init if (!initialize_class(c)) return NULL; - return (jclass) c; + return LLNI_classinfo_wrap(c); } @@ -725,7 +725,7 @@ jclass JVM_DefineClassWithSource(JNIEnv *env, const char *name, jobject loader, #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) ); } @@ -747,7 +747,7 @@ jclass JVM_FindLoadedClass(JNIEnv *env, jobject loader, jstring name) u = javastring_toutf((java_handle_t *) name, true); c = classcache_lookup(cl, u); - return (jclass) c; + return LLNI_classinfo_wrap(c); } @@ -771,7 +771,7 @@ jobjectArray JVM_GetClassInterfaces(JNIEnv *env, jclass cls) TRACEJVMCALLS("JVM_GetClassInterfaces(env=%p, cls=%p)", env, cls); - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); oa = class_get_interfaces(c); @@ -800,7 +800,7 @@ jboolean JVM_IsInterface(JNIEnv *env, jclass cls) log_println("JVM_IsInterface: cls=%p", cls); #endif - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); return class_is_interface(c); } @@ -832,7 +832,7 @@ jobject JVM_GetProtectionDomain(JNIEnv *env, jclass cls) log_println("JVM_GetProtectionDomain: cls=%p"); #endif - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); if (c == NULL) { exceptions_throw_nullpointerexception(); @@ -927,7 +927,7 @@ jboolean JVM_IsArrayClass(JNIEnv *env, jclass cls) #if PRINTJVM log_println("JVM_IsArrayClass: cls=%p", cls); #endif - return class_is_array((classinfo *) cls); + return class_is_array(LLNI_classinfo_unwrap(cls)); } @@ -937,7 +937,7 @@ jboolean JVM_IsPrimitiveClass(JNIEnv *env, jclass cls) { classinfo *c; - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); #if PRINTJVM log_println("JVM_IsPrimitiveClass(cls=%p)", cls); @@ -956,11 +956,11 @@ jclass JVM_GetComponentType(JNIEnv *env, jclass 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); } @@ -974,7 +974,7 @@ jint JVM_GetClassModifiers(JNIEnv *env, jclass cls) log_println("JVM_GetClassModifiers: cls=%p", cls); #endif - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); /* XXX is this correct? */ @@ -991,7 +991,7 @@ jobjectArray JVM_GetDeclaredClasses(JNIEnv *env, jclass ofClass) TRACEJVMCALLS("JVM_GetDeclaredClasses(env=%p, ofClass=%p)", env, ofClass); - c = (classinfo *) ofClass; + c = LLNI_classinfo_unwrap(ofClass); oa = class_get_declaredclasses(c, false); @@ -1003,7 +1003,7 @@ jobjectArray JVM_GetDeclaredClasses(JNIEnv *env, jclass ofClass) jclass JVM_GetDeclaringClass(JNIEnv *env, jclass ofClass) { - classinfo *c = (classinfo*)ofClass; + classinfo *c = LLNI_classinfo_unwrap(ofClass); TRACEJVMCALLS("JVM_GetDeclaringClass: ofClass=%p", ofClass); @@ -1012,7 +1012,7 @@ jclass JVM_GetDeclaringClass(JNIEnv *env, jclass ofClass) return NULL; } - return (jclass)class_get_declaringclass(c); + return LLNI_classinfo_wrap(class_get_declaringclass(c)); } @@ -1029,7 +1029,7 @@ jstring JVM_GetClassSignature(JNIEnv *env, jclass cls) 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); @@ -1187,7 +1187,7 @@ jint JVM_GetClassAccessFlags(JNIEnv *env, jclass cls) log_println("JVM_GetClassAccessFlags: cls=%p", cls); #endif - c = (classinfo *) cls; + c = LLNI_classinfo_unwrap(cls); return c->flags & ACC_CLASS_REFLECT_MASK; } @@ -1228,7 +1228,7 @@ jobject JVM_GetClassConstantPool(JNIEnv *env, jclass cls) 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; } @@ -1239,7 +1239,7 @@ jint JVM_ConstantPoolGetSize(JNIEnv *env, jobject unused, jobject jcpool) 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); @@ -1249,7 +1249,7 @@ jclass JVM_ConstantPoolGetClassAt(JNIEnv *env, jobject unused, jobject jcpool, j return NULL; } - return (jclass)resolve_classref_eager(ref); + return LLNI_classinfo_wrap(resolve_classref_eager(ref)); } @@ -1259,7 +1259,7 @@ jclass JVM_ConstantPoolGetClassAtIfLoaded(JNIEnv *env, jobject unused, jobject j { 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); @@ -1277,7 +1277,7 @@ jclass JVM_ConstantPoolGetClassAtIfLoaded(JNIEnv *env, jobject unused, jobject j return NULL; } - return (jclass)c; + return LLNI_classinfo_wrap(c); } @@ -1286,7 +1286,7 @@ jclass JVM_ConstantPoolGetClassAtIfLoaded(JNIEnv *env, jobject unused, jobject j 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); @@ -1307,7 +1307,7 @@ jobject JVM_ConstantPoolGetMethodAtIfLoaded(JNIEnv *env, jobject unused, jobject { 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); @@ -1334,7 +1334,7 @@ jobject JVM_ConstantPoolGetMethodAtIfLoaded(JNIEnv *env, jobject unused, jobject 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); @@ -1354,12 +1354,11 @@ jobject JVM_ConstantPoolGetFieldAtIfLoaded(JNIEnv *env, jobject unused, jobject { 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; @@ -1391,7 +1390,7 @@ jobjectArray JVM_ConstantPoolGetMemberRefInfoAt(JNIEnv *env, jobject unused, job 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); @@ -1410,7 +1409,7 @@ jint JVM_ConstantPoolGetIntAt(JNIEnv *env, jobject unused, jobject jcpool, jint 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); @@ -1429,7 +1428,7 @@ jlong JVM_ConstantPoolGetLongAt(JNIEnv *env, jobject unused, jobject jcpool, jin 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); @@ -1448,7 +1447,7 @@ jfloat JVM_ConstantPoolGetFloatAt(JNIEnv *env, jobject unused, jobject jcpool, j 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); @@ -1467,7 +1466,7 @@ jdouble JVM_ConstantPoolGetDoubleAt(JNIEnv *env, jobject unused, jobject jcpool, 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); @@ -1487,7 +1486,7 @@ jstring JVM_ConstantPoolGetStringAt(JNIEnv *env, jobject unused, jobject jcpool, 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); @@ -2291,7 +2290,7 @@ jobject JVM_NewArray(JNIEnv *env, jclass eltClass, jint length) 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 */ diff --git a/src/native/vm/sun_misc_Unsafe.c b/src/native/vm/sun_misc_Unsafe.c index 42ce71ac1..cb7e977c8 100644 --- a/src/native/vm/sun_misc_Unsafe.c +++ b/src/native/vm/sun_misc_Unsafe.c @@ -466,7 +466,7 @@ JNIEXPORT void JNICALL Java_sun_misc_Unsafe_ensureClassInitialized(JNIEnv *env, { classinfo *c; - c = (classinfo *) class; + c = LLNI_classinfo_unwrap(class); if (!(c->state & CLASS_INITIALIZED)) initialize_class(c); @@ -483,7 +483,7 @@ JNIEXPORT int32_t JNICALL Java_sun_misc_Unsafe_arrayBaseOffset(JNIEnv *env, sun_ classinfo *c; arraydescriptor *ad; - c = (classinfo *) arrayClass; + c = LLNI_classinfo_unwrap(arrayClass); ad = c->vftbl->arraydesc; if (ad == NULL) { @@ -506,7 +506,7 @@ JNIEXPORT int32_t JNICALL Java_sun_misc_Unsafe_arrayIndexScale(JNIEnv *env, sun_ classinfo *c; arraydescriptor *ad; - c = (classinfo *) arrayClass; + c = LLNI_classinfo_unwrap(arrayClass); ad = c->vftbl->arraydesc; if (ad == NULL) { @@ -576,7 +576,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_sun_misc_Unsafe_defineClass__Ljava_lang_ /* for convenience */ - o = (java_lang_Class *) c; + o = LLNI_classinfo_wrap(c); #if defined(WITH_CLASSPATH_GNU) /* set ProtectionDomain */ diff --git a/src/vmcore/loader.c b/src/vmcore/loader.c index 5e910a435..622d98105 100644 --- a/src/vmcore/loader.c +++ b/src/vmcore/loader.c @@ -22,7 +22,7 @@ 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 $ */ @@ -37,6 +37,8 @@ #include "mm/memory.h" +#include "native/llni.h" + #include "threads/lock-common.h" #include "toolbox/logging.h" @@ -1006,7 +1008,7 @@ classinfo *load_class_from_classloader(utf *name, classloader *cl) 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 -- 2.25.1