Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26856ac3 authored by Nicolas Geoffray's avatar Nicolas Geoffray
Browse files

Move to C API of libnativeloader.

Test: m
Bug: 119840313
Merged-In: I11c44c46595cde768ee639e6c5a4cce1559e32f7
(cherry picked from commit a655dac7)

Change-Id: I2ccacbe8937be7f26311364618f46e7f83274e85

Exempt-From-Owner-Approval: Cherry-pick of approved CL in master.
parent 9a22123a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ struct android_namespace_t;

namespace android {

class NativeLoaderNamespace;
struct NativeLoaderNamespace;

class GraphicsEnv {
public:
+7 −6
Original line number Diff line number Diff line
@@ -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<std::mutex> 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;