Loading libnativeloader/include/nativeloader/native_loader.h +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ namespace android { __attribute__((visibility("default"))) void PreloadPublicNativeLibraries(); __attribute__((visibility("default"))) void* OpenNativeLibrary(JNIEnv* env, int32_t target_sdk_version, const char* path, jobject class_loader, bool is_shared, jstring library_path, Loading libnativeloader/native_loader.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -57,9 +57,7 @@ static const char* kPublicNativeLibraries = "libandroid.so:" class LibraryNamespaces { public: LibraryNamespaces() : initialized_(false) { PreloadPublicLibraries(); } LibraryNamespaces() : initialized_(false) { } android_namespace_t* GetOrCreate(JNIEnv* env, jobject class_loader, bool is_shared, Loading Loading @@ -111,7 +109,6 @@ class LibraryNamespaces { return it != namespaces_.end() ? it->second : nullptr; } private: void PreloadPublicLibraries() { // android_init_namespaces() expects all the public libraries // to be loaded so that they can be found by soname alone. Loading @@ -121,6 +118,7 @@ class LibraryNamespaces { } } private: bool InitPublicNamespace(const char* library_path) { // Some apps call dlopen from generated code unknown to linker in which // case linker uses anonymous namespace. See b/25844435 for details. Loading @@ -139,6 +137,12 @@ class LibraryNamespaces { static LibraryNamespaces* g_namespaces = new LibraryNamespaces; #endif void PreloadPublicNativeLibraries() { #if defined(__ANDROID__) g_namespaces->PreloadPublicLibraries(); #endif } void* OpenNativeLibrary(JNIEnv* env, int32_t target_sdk_version, const char* path, jobject class_loader, bool is_shared, jstring java_library_path, Loading Loading
libnativeloader/include/nativeloader/native_loader.h +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ namespace android { __attribute__((visibility("default"))) void PreloadPublicNativeLibraries(); __attribute__((visibility("default"))) void* OpenNativeLibrary(JNIEnv* env, int32_t target_sdk_version, const char* path, jobject class_loader, bool is_shared, jstring library_path, Loading
libnativeloader/native_loader.cpp +8 −4 Original line number Diff line number Diff line Loading @@ -57,9 +57,7 @@ static const char* kPublicNativeLibraries = "libandroid.so:" class LibraryNamespaces { public: LibraryNamespaces() : initialized_(false) { PreloadPublicLibraries(); } LibraryNamespaces() : initialized_(false) { } android_namespace_t* GetOrCreate(JNIEnv* env, jobject class_loader, bool is_shared, Loading Loading @@ -111,7 +109,6 @@ class LibraryNamespaces { return it != namespaces_.end() ? it->second : nullptr; } private: void PreloadPublicLibraries() { // android_init_namespaces() expects all the public libraries // to be loaded so that they can be found by soname alone. Loading @@ -121,6 +118,7 @@ class LibraryNamespaces { } } private: bool InitPublicNamespace(const char* library_path) { // Some apps call dlopen from generated code unknown to linker in which // case linker uses anonymous namespace. See b/25844435 for details. Loading @@ -139,6 +137,12 @@ class LibraryNamespaces { static LibraryNamespaces* g_namespaces = new LibraryNamespaces; #endif void PreloadPublicNativeLibraries() { #if defined(__ANDROID__) g_namespaces->PreloadPublicLibraries(); #endif } void* OpenNativeLibrary(JNIEnv* env, int32_t target_sdk_version, const char* path, jobject class_loader, bool is_shared, jstring java_library_path, Loading