Loading libnativebridge/include/nativebridge/native_bridge.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ bool NativeBridgeError(); bool NativeBridgeNameAcceptable(const char* native_bridge_library_filename); // Decrements the reference count on the dynamic library handler. If the reference count drops // to zero then the dynamic library is unloaded. // to zero then the dynamic library is unloaded. Returns 0 on success and non-zero on error. int NativeBridgeUnloadLibrary(void* handle); // Get last error message of native bridge when fail to load library or search symbol. Loading libnativeloader/include/nativeloader/native_loader.h +3 −2 Original line number Diff line number Diff line Loading @@ -47,8 +47,9 @@ void* OpenNativeLibrary(JNIEnv* env, bool* needs_native_bridge, std::string* error_msg); __attribute__((visibility("default"))) bool CloseNativeLibrary(void* handle, const bool needs_native_bridge); __attribute__((visibility("default"))) bool CloseNativeLibrary(void* handle, const bool needs_native_bridge, std::string* error_msg); #if defined(__ANDROID__) // Look up linker namespace by class_loader. Returns nullptr if Loading libnativeloader/native_loader.cpp +15 −3 Original line number Diff line number Diff line Loading @@ -710,9 +710,21 @@ void* OpenNativeLibrary(JNIEnv* env, #endif } bool CloseNativeLibrary(void* handle, const bool needs_native_bridge) { return needs_native_bridge ? NativeBridgeUnloadLibrary(handle) : dlclose(handle); bool CloseNativeLibrary(void* handle, const bool needs_native_bridge, std::string* error_msg) { bool success; if (needs_native_bridge) { success = (NativeBridgeUnloadLibrary(handle) == 0); if (!success) { *error_msg = NativeBridgeGetError(); } } else { success = (dlclose(handle) == 0); if (!success) { *error_msg = dlerror(); } } return success; } #if defined(__ANDROID__) Loading Loading
libnativebridge/include/nativebridge/native_bridge.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ bool NativeBridgeError(); bool NativeBridgeNameAcceptable(const char* native_bridge_library_filename); // Decrements the reference count on the dynamic library handler. If the reference count drops // to zero then the dynamic library is unloaded. // to zero then the dynamic library is unloaded. Returns 0 on success and non-zero on error. int NativeBridgeUnloadLibrary(void* handle); // Get last error message of native bridge when fail to load library or search symbol. Loading
libnativeloader/include/nativeloader/native_loader.h +3 −2 Original line number Diff line number Diff line Loading @@ -47,8 +47,9 @@ void* OpenNativeLibrary(JNIEnv* env, bool* needs_native_bridge, std::string* error_msg); __attribute__((visibility("default"))) bool CloseNativeLibrary(void* handle, const bool needs_native_bridge); __attribute__((visibility("default"))) bool CloseNativeLibrary(void* handle, const bool needs_native_bridge, std::string* error_msg); #if defined(__ANDROID__) // Look up linker namespace by class_loader. Returns nullptr if Loading
libnativeloader/native_loader.cpp +15 −3 Original line number Diff line number Diff line Loading @@ -710,9 +710,21 @@ void* OpenNativeLibrary(JNIEnv* env, #endif } bool CloseNativeLibrary(void* handle, const bool needs_native_bridge) { return needs_native_bridge ? NativeBridgeUnloadLibrary(handle) : dlclose(handle); bool CloseNativeLibrary(void* handle, const bool needs_native_bridge, std::string* error_msg) { bool success; if (needs_native_bridge) { success = (NativeBridgeUnloadLibrary(handle) == 0); if (!success) { *error_msg = NativeBridgeGetError(); } } else { success = (dlclose(handle) == 0); if (!success) { *error_msg = dlerror(); } } return success; } #if defined(__ANDROID__) Loading