* src/native/llni.h (LLNI_classinfo_wrap, LLNI_classinfo_unwrap): Added new
authormichi <none@none>
Fri, 17 Aug 2007 21:32:01 +0000 (21:32 +0000)
committermichi <none@none>
Fri, 17 Aug 2007 21:32:01 +0000 (21:32 +0000)
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

17 files changed:
src/native/jni.c
src/native/llni.h
src/native/vm/cldc1.1/java_lang_Class.c
src/native/vm/cldc1.1/java_lang_Object.c
src/native/vm/gnu/java_lang_VMClass.c
src/native/vm/gnu/java_lang_VMClassLoader.c
src/native/vm/gnu/java_lang_VMThrowable.c
src/native/vm/gnu/java_lang_reflect_Field.c
src/native/vm/gnu/java_lang_reflect_Method.c
src/native/vm/gnu/sun_reflect_ConstantPool.c
src/native/vm/java_lang_Class.c
src/native/vm/java_lang_ClassLoader.c
src/native/vm/java_lang_Object.c
src/native/vm/reflect.c
src/native/vm/sun/jvm.c
src/native/vm/sun_misc_Unsafe.c
src/vmcore/loader.c

index aa7dbe6b608caeb59f2d63f33944a2e0a50e859d..168d740c18dcbc22981b4eeb00b1b6afcedbb487 100644 (file)
@@ -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);
index 9fe5989936076b7808f8ea70cc51e57f838958f3..9e814abce27b375a6e4b02551739e529fce9f130 100644 (file)
@@ -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 $
 
 */
 
 #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) 
index 1a6a39af2679e759142579819fa103309655e444..84aa99b4b96c4e53999cba3f8771b81247e0c42a 100644 (file)
@@ -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);
 
index d9b844af8974a092047a44a5e46ab9b8d07a3004..bcc1d8373031b411426fbfd1c7ea4c79989afea5 100644 (file)
@@ -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);
 }
 
 
index e562d36441873919c7a9d5c5b64625d1340a9875..36a768b4c6d5f00f970800812f2bd14e7df993b5 100644 (file)
@@ -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));
 }
 
 
index 59832c0ef9e142590295ea950627e2fd33dfd59a..f7273977fb4918783488ab62435f3d1c4052f233 100644 (file)
@@ -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);
 }
 
 
index e7d282e590cb51fccdce0e0611cff9936e9b371c..47791faf2d8c3a5784565d9a7bf310ddfd32457a 100644 (file)
@@ -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 */
 
index a45d4d09ef040a8b95f6dcc46949ccff01509bac..58b3b2840079771ffaa789f972fe168d3f477fd0 100644 (file)
@@ -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);
 }
 
 
index 5fe2235b108e787c98b1e5e361c50ee86a4e89af..ee46c33ce2d185202064b8ef94188ba7499ec624 100644 (file)
@@ -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);
 }
 
 
index b607fe2e7e97c85e5c0a18b1e79a62b18a248655..77030ca4ee5238663e9dbe482a869955b4a53e2c 100644 (file)
@@ -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);
 
index ed55b58d809842c787c38f8daa81741dab675d16..bc6f69a2e636093db866d5a3f34cc1bae396acdf 100644 (file)
@@ -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;
index 78e3c83215d253d3936188f089045b7626a65fbe..8bed0685538d01a44bd31dc8ab4f4ca84ff237cf 100644 (file)
@@ -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 */
index f5ff5afa73b568886b717826177d48ffffb6c5ce..191ed2448ebde4cd97625b352cb10c246c75af79 100644 (file)
@@ -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);
 }
 
 
index fa8d88066b62370a067732101ac149dc0dd8a1ad..ecb3caa62e0965a24aa08cf4ddcc155571ab04ae 100644 (file)
@@ -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);
index a61b153c20e4881ab703d0ae422d8a924e5b26d4..d036f0566d2094f90141f60bb68751465d23d737 100644 (file)
@@ -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 */
 
index 42ce71ac1c604e3507165169d9c66ee41b5db56e..cb7e977c84687868ea3ff2e31a9f786a96f7413e 100644 (file)
@@ -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 */
index 5e910a435a2e66cf6883aeb3f46647058d3c0d37..622d98105ffb237ddc833163c522e22f702fcd16 100644 (file)
@@ -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