exp/audio/al: call log.Fatalf for a dlsym failure.
Change-Id: I197e101f2b93c2aa9dc69cb697afa68a69142783 Reviewed-on: https://go-review.googlesource.com/11537 Reviewed-by: Burcu Dogan <jbd@google.com>
This commit is contained in:
parent
d1958fa5cf
commit
b6ec031d27
|
@ -30,11 +30,13 @@ void* al_init(void* vm, void* context) {
|
||||||
case JNI_EDETACHED:
|
case JNI_EDETACHED:
|
||||||
if ((*current_vm)->AttachCurrentThread(current_vm, &env, 0) != 0) {
|
if ((*current_vm)->AttachCurrentThread(current_vm, &env, 0) != 0) {
|
||||||
LOG_FATAL("cannot attach JVM");
|
LOG_FATAL("cannot attach JVM");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
attached = 1;
|
attached = 1;
|
||||||
break;
|
break;
|
||||||
case JNI_EVERSION:
|
case JNI_EVERSION:
|
||||||
LOG_FATAL("bad JNI version");
|
LOG_FATAL("bad JNI version");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jclass android_content_Context = (*env)->FindClass(env, "android/content/Context");
|
jclass android_content_Context = (*env)->FindClass(env, "android/content/Context");
|
||||||
|
@ -47,12 +49,13 @@ void* al_init(void* vm, void* context) {
|
||||||
strlcat(lib_path, "/lib/libopenal.so", sizeof(lib_path));
|
strlcat(lib_path, "/lib/libopenal.so", sizeof(lib_path));
|
||||||
void* handle = dlopen(lib_path, RTLD_LAZY);
|
void* handle = dlopen(lib_path, RTLD_LAZY);
|
||||||
(*env)->ReleaseStringUTFChars(env, package_name, cpackage_name);
|
(*env)->ReleaseStringUTFChars(env, package_name, cpackage_name);
|
||||||
if (!handle) {
|
|
||||||
LOG_FATAL("cannot load libopenal.so");
|
|
||||||
}
|
|
||||||
if (attached) {
|
if (attached) {
|
||||||
(*current_vm)->DetachCurrentThread(current_vm);
|
(*current_vm)->DetachCurrentThread(current_vm);
|
||||||
}
|
}
|
||||||
|
if (!handle) {
|
||||||
|
LOG_FATAL("cannot load libopenal.so");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return handle;
|
return handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -297,8 +300,11 @@ func fn(fname string) unsafe.Pointer {
|
||||||
name := C.CString(fname)
|
name := C.CString(fname)
|
||||||
defer C.free(unsafe.Pointer(name))
|
defer C.free(unsafe.Pointer(name))
|
||||||
|
|
||||||
// TODO(jbd): Handle dlsym error and panic.
|
p := C.dlsym(alHandle, name)
|
||||||
return C.dlsym(alHandle, name)
|
if uintptr(p) == 0 {
|
||||||
|
log.Fatalf("al: couldn't dlsym %q (alHandle=%p)", fname, alHandle)
|
||||||
|
}
|
||||||
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
func alEnable(capability int32) {
|
func alEnable(capability int32) {
|
||||||
|
|
Loading…
Reference in New Issue