Merge "nativeloader: Add CloseNativeLibrary() method"
diff --git a/libnativeloader/include/nativeloader/native_loader.h b/libnativeloader/include/nativeloader/native_loader.h
index d606a76..2a6aaec 100644
--- a/libnativeloader/include/nativeloader/native_loader.h
+++ b/libnativeloader/include/nativeloader/native_loader.h
@@ -43,6 +43,9 @@
jobject class_loader,
jstring library_path);
+__attribute__((visibility("default")))
+bool CloseNativeLibrary(void* handle);
+
#if defined(__ANDROID__)
// Look up linker namespace by class_loader. Returns nullptr if
// there is no namespace associated with the class_loader.
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp
index 72152e7..7d9bb56 100644
--- a/libnativeloader/native_loader.cpp
+++ b/libnativeloader/native_loader.cpp
@@ -241,6 +241,10 @@
#endif
}
+bool CloseNativeLibrary(void* handle) {
+ return dlclose(handle) == 0;
+}
+
#if defined(__ANDROID__)
android_namespace_t* FindNamespaceByClassLoader(JNIEnv* env, jobject class_loader) {
std::lock_guard<std::mutex> guard(g_namespaces_mutex);