Merge "Add error_msg argument to CloseNativeLibrary" am: 6590255dbb
am: 165121c0c8
Change-Id: If819a91b4081a8f8cb885b76685aa3f1ff93e1ef
This commit is contained in:
commit
27052a7987
3 changed files with 19 additions and 6 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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…
Add table
Reference in a new issue