From: Brian M. <ma...@us...> - 2002-08-26 22:16:30
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/win32 In directory usw-pr-cvs1:/tmp/cvs-serv12880 Modified Files: org_lwjgl_openal_ALC.cpp Log Message: fix: NULL check in getString fix: wrong object being used when retrieving fields Index: org_lwjgl_openal_ALC.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_openal_ALC.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_openal_ALC.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- org_lwjgl_openal_ALC.cpp 26 Aug 2002 21:28:30 -0000 1.5 +++ org_lwjgl_openal_ALC.cpp 26 Aug 2002 22:16:25 -0000 1.6 @@ -53,9 +53,14 @@ JNIEXPORT jstring JNICALL Java_org_lwjgl_openal_ALC_getString (JNIEnv *env, jobject obj, jobject device, jint token) { jclass class_device = env->GetObjectClass(device); jfieldID field_device = env->GetFieldID(class_device, "device", "I"); - jint deviceaddress = env->GetIntField(obj, field_device); + jint deviceaddress = env->GetIntField(device, field_device); - jstring string = env->NewStringUTF((const char*) alcGetString((ALCdevice*) deviceaddress, (ALenum) token)); + const char* alcString = (const char*) alcGetString((ALCdevice*) deviceaddress, (ALenum) token); + if(alcString == NULL) { + return NULL; + } + + jstring string = env->NewStringUTF(alcString); CHECK_ALC_ERROR return string; @@ -70,7 +75,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_openal_ALC_getIntegerv (JNIEnv *env, jobject obj, jobject device, jint token, jint size, jint dest) { jclass device_class = env->GetObjectClass(device); jfieldID device_field = env->GetFieldID(device_class, "device", "I"); - jint deviceaddress = env->GetIntField(obj, device_field); + jint deviceaddress = env->GetIntField(device, device_field); alcGetIntegerv((ALCdevice*) deviceaddress, (ALenum) token, (ALsizei) size, (ALint*) dest); CHECK_ALC_ERROR |