* src/native/jni.hpp (JNI_VERSION_CACAO): Added to be able to reveal ourselves.
authorMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 5 Mar 2009 15:13:32 +0000 (16:13 +0100)
committerMichael Starzinger <michi@complang.tuwien.ac.at>
Thu, 5 Mar 2009 15:13:32 +0000 (16:13 +0100)
* src/native/jni.cpp (JNI_GetDefaultJavaVMInitArgs): Now accepts above version
number.

src/native/jni.cpp
src/native/jni.hpp

index 1f3bb40d2a7fca51455b3bc97277aaeefa031740..e048a216df072e34bd3da2af611217667a7a8180 100644 (file)
@@ -793,9 +793,7 @@ jint _Jv_JNI_GetVersion(JNIEnv *env)
 {
        TRACEJNICALLS(("_Jv_JNI_GetVersion(env=%p)", env));
 
-       /* We support JNI 1.6. */
-
-       return JNI_VERSION_1_6;
+       return JNI_VERSION_SUPPORTED;
 }
 
 
@@ -4125,22 +4123,28 @@ jint JNI_GetDefaultJavaVMInitArgs(void *vm_args)
        /* GNU classpath currently supports JNI 1.2 */
 
        switch (_vm_args->version) {
-    case JNI_VERSION_1_1:
+       case JNI_VERSION_1_1:
                _vm_args->version = JNI_VERSION_1_1;
                break;
 
-    case JNI_VERSION_1_2:
-    case JNI_VERSION_1_4:
+       case JNI_VERSION_1_2:
+       case JNI_VERSION_1_4:
                _vm_args->ignoreUnrecognized = JNI_FALSE;
                _vm_args->options = NULL;
                _vm_args->nOptions = 0;
                break;
 
-    default:
-               return -1;
+       case JNI_VERSION_CACAO:
+               // We reveal ourselves by accepting this version number,
+               // this actually means we are using the supported JNI version.
+               _vm_args->version = JNI_VERSION_SUPPORTED;
+               break;
+
+       default:
+               return JNI_ERR;
        }
-  
-       return 0;
+
+       return JNI_OK;
 }
 
 
index 16933eca1c84c6df8932765c60d37a533f4c68bd..e26aca44ff4fba82520026ab813a8e885c45d0b0 100644 (file)
 //#include "vm/javaobjects.hpp"
 #include "vm/global.h"
 
+
+// Some additional JNI version numbers, we currently support JNI 1.6.
+#define JNI_VERSION_SUPPORTED JNI_VERSION_1_6
+#define JNI_VERSION_CACAO     0xcaca0000
+
+
 // Typedef the JNI types.
 typedef java_handle_t*              jobject;
 typedef java_handle_t*              jclass;