summaryrefslogtreecommitdiff
path: root/libnativeloader/native_loader_namespace.cpp
AgeCommit message (Collapse)Author
2019-10-09Move libnative{bridge,loader} to art/Orion Hodson
Bug: 137364733 Test: m Change-Id: I8fc0796745f7310f477fe9f8b0821586742dd9c0
2019-08-12Don't create anonymous namespaceJiyong Park
Don't create anonymous namespace separately, use the first namespace that is created for app classloader as the anonymous namespace. Note that the anonymous namespace is set via the new ANDROID_NAMESPACE_TYPE_ALSO_USED_AS_ANONYMOUS. I didn't creat a new function like android_set_anonymous_namespace as it requires uprev of the libnativebridge interface and makes it harder to delete the old android_init_anonymous_namespace as we have to keep it until all proprietary bridged loaders are updated. Bug: 130388701 Test: CtsBionicTestCases Test: run games on http://www.monogame.net/showcase/?Android Change-Id: I0fdd614365eaa56c4ab47538bf3772d94bd9ae55
2019-08-01Don't fail if default namespace isn't foundJiyong Park
This fixes a regression caused by 8f4afc8298ebae34e8f944a0807943997908c67d that libnativeloader can't no longer handle the case that it has failed to find the default namespace. Previously before the change, libnativeloader continued to use nullptr as the parent namespace which is reconized as the default namespace inside the linker. This change recovers the previous behavior. When the default namespace is not found, NativeLoaderNamespace object is constructed from nullptr. Bug: 138607234 Test: run app-compat/app-startup-gce on cf_x86_phone using forrest Change-Id: If518fbc055399b73e7d3a6b45ace0f71e9c25dae (cherry picked from commit db825ceba694eb6abe4ecff45fc4e1121646385f) Merged-In: If518fbc055399b73e7d3a6b45ace0f71e9c25dae
2019-07-26Use android::base::Result in libnativeloaderJiyong Park
Remove the out parameters for error messages using Result<T>. Bug: 130388701 Test: libnativeloader_test Change-Id: Idbaf391c183fb20d5e1d7c96f3a4ccbf9745b7e6
2019-05-17Fix nullpointer dereference in libnativeloaderJiyong Park
The `char* path` argument of OpenNativeLibrary() can be nullptr. We are constructing std::string from the path, which is a bug. Fixing it by using char* without converting it to std::string. Test: run-gtests.sh JniCompilerTest.CompileAndRunIntMethodThroughStubNormalCompiler is successful. Change-Id: I91249da7c1a72a2dff9bc77e477b465e0c7ee056
2019-05-16Fix style around header inclusionJiyong Park
This change is to be in sync with other libraries in system/core. External headers are included via #include <...> rather than #include "...", which is for headers from the current library. Bug: 130388701 Test: build & pass presubmit tests Change-Id: Ifb87ebaea1b0ff95e2e79352e6a42e3bfd949c52
2019-05-16Hide non-bridged/bridged namespaces behind NativeLoaderNamespace classJiyong Park
NativeLoaderNamespace fully abstracts the non-bridged (so called android-) and bridged namespaces. Bug: 130388701 Test: build & pass presubmit tests Change-Id: I3d5ca7515711e7638f4a5ab4d3a150185c3d17ac