From 26856ac373d1aa534de0fd333a2500bfc3c8c0d4 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Fri, 11 Jan 2019 15:59:42 +0000 Subject: Move to C API of libnativeloader. Test: m Bug: 119840313 Merged-In: I11c44c46595cde768ee639e6c5a4cce1559e32f7 (cherry picked from commit a655dac726de2b2085700a4afe9456ac0ab302b7) Change-Id: I2ccacbe8937be7f26311364618f46e7f83274e85 Exempt-From-Owner-Approval: Cherry-pick of approved CL in master. --- libs/graphicsenv/include/graphicsenv/GraphicsEnv.h | 2 +- vulkan/libvulkan/layers_extensions.cpp | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h index 17e8f6ba47..784e2c8903 100644 --- a/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h +++ b/libs/graphicsenv/include/graphicsenv/GraphicsEnv.h @@ -23,7 +23,7 @@ struct android_namespace_t; namespace android { -class NativeLoaderNamespace; +struct NativeLoaderNamespace; class GraphicsEnv { public: diff --git a/vulkan/libvulkan/layers_extensions.cpp b/vulkan/libvulkan/layers_extensions.cpp index 009b257029..ba4cf00451 100644 --- a/vulkan/libvulkan/layers_extensions.cpp +++ b/vulkan/libvulkan/layers_extensions.cpp @@ -139,12 +139,12 @@ bool LayerLibrary::Open() { auto app_namespace = android::GraphicsEnv::getInstance().getAppNamespace(); if (app_namespace && !android::base::StartsWith(path_, kSystemLayerLibraryDir)) { - std::string error_msg; - dlhandle_ = OpenNativeLibrary( + char* error_msg = nullptr; + dlhandle_ = OpenNativeLibraryInNamespace( app_namespace, path_.c_str(), &native_bridge_, &error_msg); if (!dlhandle_) { - ALOGE("failed to load layer library '%s': %s", path_.c_str(), - error_msg.c_str()); + ALOGE("failed to load layer library '%s': %s", path_.c_str(), error_msg); + android::NativeLoaderFreeErrorMessage(error_msg); refcount_ = 0; return false; } @@ -165,9 +165,10 @@ void LayerLibrary::Close() { std::lock_guard lock(mutex_); if (--refcount_ == 0) { ALOGV("closing layer library '%s'", path_.c_str()); - std::string error_msg; + char* error_msg = nullptr; if (!android::CloseNativeLibrary(dlhandle_, native_bridge_, &error_msg)) { - ALOGE("failed to unload library '%s': %s", path_.c_str(), error_msg.c_str()); + ALOGE("failed to unload library '%s': %s", path_.c_str(), error_msg); + android::NativeLoaderFreeErrorMessage(error_msg); refcount_++; } else { dlhandle_ = nullptr; -- cgit v1.2.3-59-g8ed1b