diff --git a/src/native/common/common_tools.c b/src/native/common/common_tools.c index 568a299f..25c3128b 100644 --- a/src/native/common/common_tools.c +++ b/src/native/common/common_tools.c @@ -43,7 +43,7 @@ static bool debug = false; static const char* VERSION = "0.93"; -JavaVM *jvm; +static JavaVM *jvm; void initAttribList(attrib_list_t *list) { list->current_index = 0; @@ -217,9 +217,14 @@ bool getBooleanProperty(JNIEnv *env, const char* propertyName) { return (*env)->CallStaticBooleanMethod(env, booleanClass, getBoolean, property) ? true : false; } +JavaVM *getJVM() { + return jvm; +} + JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { jvm = vm; return JNI_VERSION_1_4; } + JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) { } diff --git a/src/native/common/common_tools.h b/src/native/common/common_tools.h index 00a3b0f4..a64faa71 100644 --- a/src/native/common/common_tools.h +++ b/src/native/common/common_tools.h @@ -43,9 +43,6 @@ #include #include "org_lwjgl_Sys.h" -// shared VM instance -extern JavaVM *jvm; - #define EVENT_BUFFER_SIZE 256 #define ATTRIB_LIST_SIZE (256) @@ -61,10 +58,8 @@ typedef struct { int attribs[ATTRIB_LIST_SIZE]; } attrib_list_t; -#ifndef __cplusplus -typedef unsigned char bool; -#define true 1 -#define false 0 +#ifdef _X11 +typedef enum {false, true} bool; #endif #ifdef _WIN32 @@ -118,6 +113,7 @@ typedef struct { extern "C" { #endif +extern JavaVM *getJVM(); extern void initAttribList(attrib_list_t *list); extern void putAttrib(attrib_list_t *list, int attrib); diff --git a/src/native/common/fmod3/org_lwjgl_fmod3_FMusic.c b/src/native/common/fmod3/org_lwjgl_fmod3_FMusic.c index 44efae30..ff972b84 100644 --- a/src/native/common/fmod3/org_lwjgl_fmod3_FMusic.c +++ b/src/native/common/fmod3/org_lwjgl_fmod3_FMusic.c @@ -499,7 +499,7 @@ void attachMixerThread() { jfieldID highPriority; jint highPriorityValue; jmethodID priority; - + JavaVM *jvm = getJVM(); (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void*)&mixer_jnienv, NULL); // set to high priority diff --git a/src/native/common/fmod3/org_lwjgl_fmod3_FSound.c b/src/native/common/fmod3/org_lwjgl_fmod3_FSound.c index 41979c57..c137be2f 100644 --- a/src/native/common/fmod3/org_lwjgl_fmod3_FSound.c +++ b/src/native/common/fmod3/org_lwjgl_fmod3_FSound.c @@ -1870,7 +1870,7 @@ void attachStreamThread() { jfieldID highPriority; jint highPriorityValue; jmethodID priority; - + JavaVM jvm = getJVM(); (*jvm)->AttachCurrentThreadAsDaemon(jvm, (void*)&stream_jnienv, NULL); // set to high priority