* m4/classpath.m4: Renamed --with-classpath* options to
[cacao.git] / src / native / jni.c
index b91c9f5aeccef6aa7ecc34fde59ad376a9eee239..6cfd983f9c98d085ffe1014f5446f508db004f7d 100644 (file)
@@ -40,7 +40,7 @@
 #include "native/native.h"
 
 #if defined(ENABLE_JAVASE)
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 #  include "native/include/gnu_classpath_Pointer.h"
 
 #  if SIZEOF_VOID_P == 8
@@ -56,7 +56,8 @@
 #include "native/include/java_lang_Throwable.h"
 
 #if defined(ENABLE_JAVASE)
-# if defined(WITH_CLASSPATH_SUN)
+
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 #  include "native/include/java_nio_ByteBuffer.h"       /* required by j.l.CL */
 # endif
 
@@ -75,21 +76,21 @@ struct java_lang_ClassLoader;
 
 # include "native/include/java_nio_Buffer.h"
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 #  include "native/include/java_lang_reflect_VMConstructor.h"
 #  include "native/include/java_lang_reflect_VMField.h"
 #  include "native/include/java_lang_reflect_VMMethod.h"
 
 #  include "native/include/java_nio_DirectByteBufferImpl.h"
 # endif
+#elif defined(ENABLE_JAVAME_CLDC1_1)
+# include "native/include/java_lang_Class.h"
 #endif
 
 #if defined(ENABLE_JVMTI)
 # include "native/jvmti/cacaodbg.h"
 #endif
 
-#include "native/vm/java_lang_Class.h"
-
 #if defined(ENABLE_JAVASE)
 # include "native/vm/reflect.h"
 #endif
@@ -149,7 +150,7 @@ static hashtable *hashtable_global_ref; /* hashtable for globalrefs           */
 #if defined(ENABLE_JAVASE)
 static classinfo *class_java_nio_Buffer;
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
 static classinfo *class_java_nio_DirectByteBufferImpl;
 static classinfo *class_java_nio_DirectByteBufferImpl_ReadWrite;
@@ -162,7 +163,7 @@ static classinfo *class_gnu_classpath_Pointer32;
 
 static methodinfo *dbbirw_init;
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
 static classinfo *class_sun_nio_ch_DirectBuffer;
 static classinfo *class_java_nio_DirectByteBuffer;
@@ -203,7 +204,7 @@ bool jni_init(void)
                !link_class(class_java_nio_Buffer))
                return false;
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        if (!(class_java_nio_DirectByteBufferImpl =
                  load_class_bootstrap(utf_new_char("java/nio/DirectByteBufferImpl"))) ||
@@ -233,7 +234,7 @@ bool jni_init(void)
                return false;
 #  endif
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        if (!(class_sun_nio_ch_DirectBuffer =
                  load_class_bootstrap(utf_new_char("sun/nio/ch/DirectBuffer"))))
@@ -989,15 +990,15 @@ jclass _Jv_JNI_GetSuperclass(JNIEnv *env, jclass sub)
 
 jboolean _Jv_JNI_IsAssignableFrom(JNIEnv *env, jclass sub, jclass sup)
 {
-       java_lang_Class *csup;
-       java_lang_Class *csub;
+       classinfo *to;
+       classinfo *from;
 
-       csup = (java_lang_Class *) sup;
-       csub = (java_lang_Class *) sub;
+       TRACEJNICALLS(("_Jv_JNI_IsAssignableFrom(env=%p, sub=%p, sup=%p)", env, sub, sup));
 
-       STATISTICS(jniinvokation());
+       to   = (classinfo *) sup;
+       from = (classinfo *) sub;
 
-       return _Jv_java_lang_Class_isAssignableFrom(csup, csub);
+       return class_is_assignable_from(to, from);
 }
 
 
@@ -1447,15 +1448,16 @@ jclass _Jv_JNI_GetObjectClass(JNIEnv *env, jobject obj)
 
 jboolean _Jv_JNI_IsInstanceOf(JNIEnv *env, jobject obj, jclass clazz)
 {
-       java_lang_Class  *c;
-       java_lang_Object *o;
+       classinfo     *c;
+       java_handle_t *h;
 
-       STATISTICS(jniinvokation());
+       TRACEJNICALLS(("_Jv_JNI_IsInstanceOf(env=%p, obj=%p, clazz=%p)", env, obj, clazz));
 
-       c = (java_lang_Class *) clazz;
-       o = (java_lang_Object *) obj;
+       /* XXX Is this correct? */
+       c = LLNI_classinfo_unwrap(clazz);
+       h = (java_handle_t *) obj;
 
-       return _Jv_java_lang_Class_isInstance(c, o);
+       return class_is_instance(c, h);
 }
 
 
@@ -1478,7 +1480,7 @@ jmethodID jni_FromReflectedMethod(JNIEnv *env, jobject method)
        methodinfo                      *m;
        int32_t                          slot;
 
-#if defined(WITH_CLASSPATH_GNU)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
        java_lang_reflect_VMMethod      *rvmm;
        java_lang_reflect_VMConstructor *rvmc;
 #endif
@@ -1493,13 +1495,13 @@ jmethodID jni_FromReflectedMethod(JNIEnv *env, jobject method)
        if (o->vftbl->clazz == class_java_lang_reflect_Constructor) {
                rc = (java_lang_reflect_Constructor *) method;
 
-#if defined(WITH_CLASSPATH_GNU)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
                LLNI_field_get_ref(rc,   cons , rvmc);
                LLNI_field_get_cls(rvmc, clazz, c);
                LLNI_field_get_val(rvmc, slot , slot);
 
-#elif defined(WITH_CLASSPATH_SUN)
+#elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
                LLNI_field_get_cls(rc, clazz, c);
                LLNI_field_get_val(rc, slot , slot);
@@ -1513,13 +1515,13 @@ jmethodID jni_FromReflectedMethod(JNIEnv *env, jobject method)
 
                rm = (java_lang_reflect_Method *) method;
 
-#if defined(WITH_CLASSPATH_GNU)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
                LLNI_field_get_ref(rm,   m ,    rvmm);
                LLNI_field_get_cls(rvmm, clazz, c);
                LLNI_field_get_val(rvmm, slot , slot);
 
-#elif defined(WITH_CLASSPATH_SUN)
+#elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
                LLNI_field_get_cls(rm, clazz, c);
                LLNI_field_get_val(rm, slot , slot);
@@ -1556,7 +1558,7 @@ jfieldID jni_FromReflectedField(JNIEnv* env, jobject field)
        fieldinfo                 *f;
        int32_t                    slot;
 
-#if defined(WITH_CLASSPATH_GNU)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
        java_lang_reflect_VMField *rvmf;
 #endif
 
@@ -1567,13 +1569,13 @@ jfieldID jni_FromReflectedField(JNIEnv* env, jobject field)
        if (rf == NULL)
                return NULL;
 
-#if defined(WITH_CLASSPATH_GNU)
+#if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        LLNI_field_get_ref(rf,   f,     rvmf);
        LLNI_field_get_cls(rvmf, clazz, c);
        LLNI_field_get_val(rvmf, slot , slot);
 
-#elif defined(WITH_CLASSPATH_SUN)
+#elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        LLNI_field_get_cls(rf, clazz, c);
        LLNI_field_get_val(rf, slot , slot);
@@ -3564,7 +3566,7 @@ jboolean _Jv_JNI_ExceptionCheck(JNIEnv *env)
 jobject _Jv_JNI_NewDirectByteBuffer(JNIEnv *env, void *address, jlong capacity)
 {
 #if defined(ENABLE_JAVASE)
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
        java_handle_t           *nbuf;
 
 # if SIZEOF_VOID_P == 8
@@ -3600,7 +3602,7 @@ jobject _Jv_JNI_NewDirectByteBuffer(JNIEnv *env, void *address, jlong capacity)
 
        return _Jv_JNI_NewLocalRef(env, nbuf);
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        jobject o;
        int64_t addr;
@@ -3646,7 +3648,7 @@ void *_Jv_JNI_GetDirectBufferAddress(JNIEnv *env, jobject buf)
 #if defined(ENABLE_JAVASE)
        java_handle_t                 *h;
 
-# if defined(WITH_CLASSPATH_GNU)
+# if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        java_nio_DirectByteBufferImpl *nbuf;
        gnu_classpath_Pointer         *po;
@@ -3687,7 +3689,7 @@ void *_Jv_JNI_GetDirectBufferAddress(JNIEnv *env, jobject buf)
 
        return p;
 
-# elif defined(WITH_CLASSPATH_SUN)
+# elif defined(WITH_JAVA_RUNTIME_LIBRARY_OPENJDK)
 
        java_nio_Buffer *o;
        int64_t          address;
@@ -3735,7 +3737,7 @@ void *_Jv_JNI_GetDirectBufferAddress(JNIEnv *env, jobject buf)
 
 jlong _Jv_JNI_GetDirectBufferCapacity(JNIEnv* env, jobject buf)
 {
-#if defined(ENABLE_JAVASE) && defined(WITH_CLASSPATH_GNU)
+#if defined(ENABLE_JAVASE) && defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
        java_handle_t   *o;
        java_nio_Buffer *nbuf;
        jlong            capacity;