diff options
author | 2015-12-15 14:08:18 -0800 | |
---|---|---|
committer | 2015-12-19 23:38:06 -0800 | |
commit | d5bbadf44032510b1ce12d9e5f2adad9234cf6b9 (patch) | |
tree | d47fc3cbe11567db0e539eaa818b07e569eeed0a /runtime/java_vm_ext.cc | |
parent | 2f125e3c7ab02cbbbcede533dc53a454a439be13 (diff) |
Use shared namespaces for bundled apps
Shared namespaces clone the list of loaded native
libraries from the caller namespace. This allows
classloaders for bundled apps to share already loaded
libraries with default namespace.
Bug: http://b/26165097
Bug: http://b/22548808
Change-Id: Ia90b603a0ca97194618b82fb191d6790a4b1f281
(cherry picked from commit 986f650d8b552e8b7dbebef1f50f015e7850edfc)
Diffstat (limited to 'runtime/java_vm_ext.cc')
-rw-r--r-- | runtime/java_vm_ext.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc index 15f51220e4..5c4419333b 100644 --- a/runtime/java_vm_ext.cc +++ b/runtime/java_vm_ext.cc @@ -717,8 +717,8 @@ void JavaVMExt::UnloadNativeLibraries() { } bool JavaVMExt::LoadNativeLibrary(JNIEnv* env, const std::string& path, jobject class_loader, - jstring library_path, jstring permitted_path, - std::string* error_msg) { + bool is_shared_namespace, jstring library_path, + jstring permitted_path, std::string* error_msg) { error_msg->clear(); // See if we've already loaded this library. If we have, and the class loader @@ -777,8 +777,9 @@ bool JavaVMExt::LoadNativeLibrary(JNIEnv* env, const std::string& path, jobject Locks::mutator_lock_->AssertNotHeld(self); const char* path_str = path.empty() ? nullptr : path.c_str(); - void* handle = android::OpenNativeLibrary(env, runtime_->GetTargetSdkVersion(), - path_str, class_loader, library_path, permitted_path); + void* handle = android::OpenNativeLibrary(env, runtime_->GetTargetSdkVersion(), path_str, + class_loader, is_shared_namespace, library_path, + permitted_path); bool needs_native_bridge = false; if (handle == nullptr) { if (android::NativeBridgeIsSupported(path_str)) { |