• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <dlfcn.h>
2 #include <jni.h>
3 
4 #include <string>
5 
6 extern "C" {
7 
8 JNIEXPORT jlong JNICALL
Java_com_google_vr_platform_Dvr_nativeLoadLibrary(JNIEnv * env,jclass,jstring java_library)9 Java_com_google_vr_platform_Dvr_nativeLoadLibrary(
10     JNIEnv* env, jclass, jstring java_library) {
11   if (!java_library)
12     return 0;
13 
14   // Convert the Java String object to a C++ null-terminated string.
15   const char* data = env->GetStringUTFChars(java_library, NULL);
16   size_t size = env->GetStringUTFLength(java_library);
17   std::string library(data, size);
18   env->ReleaseStringUTFChars(java_library, data);
19 
20   // Return the handle to the requested library.
21   return reinterpret_cast<jlong>(
22       dlopen(library.c_str(), RTLD_NOW | RTLD_LOCAL));
23 }
24 
25 }  // extern "C"
26