diff options
Diffstat (limited to 'libnativeloader/native_loader_namespace.cpp')
-rw-r--r-- | libnativeloader/native_loader_namespace.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libnativeloader/native_loader_namespace.cpp b/libnativeloader/native_loader_namespace.cpp index 4b0211670..4add6e690 100644 --- a/libnativeloader/native_loader_namespace.cpp +++ b/libnativeloader/native_loader_namespace.cpp @@ -69,10 +69,18 @@ Result<NativeLoaderNamespace> NativeLoaderNamespace::GetExportedNamespace(const // "default" always exists. Result<NativeLoaderNamespace> NativeLoaderNamespace::GetPlatformNamespace(bool is_bridged) { auto ns = GetExportedNamespace(kPlatformNamespaceName, is_bridged); - if (!ns) { - ns = GetExportedNamespace(kDefaultNamespaceName, is_bridged); + if (ns) return ns; + ns = GetExportedNamespace(kDefaultNamespaceName, is_bridged); + if (ns) return ns; + + // If nothing is found, return NativeLoaderNamespace constructed from nullptr. + // nullptr also means default namespace to the linker. + if (!is_bridged) { + return NativeLoaderNamespace(kDefaultNamespaceName, static_cast<android_namespace_t*>(nullptr)); + } else { + return NativeLoaderNamespace(kDefaultNamespaceName, + static_cast<native_bridge_namespace_t*>(nullptr)); } - return ns; } Result<NativeLoaderNamespace> NativeLoaderNamespace::Create( |