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

Commit 5652960d authored by Jesse Hall's avatar Jesse Hall Committed by android-build-merger
Browse files

Revert "Load the gralloc module at library load"

am: 5efa773c

Change-Id: Ib4b3dc414a2ea10aa21cebdb828c9508edc80492
parents 75509e4e 5efa773c
Loading
Loading
Loading
Loading
+9 −20
Original line number Diff line number Diff line
@@ -293,31 +293,20 @@ Return<void> GrallocMapper::unlock(void* buffer, unlock_cb hidl_cb) {
    return Void();
}

namespace {
// Load the gralloc module when this shared library is loaded, rather than
// waiting until HIDL_FETCH_IMapper is called. This allows it (and its
// dependencies) to be loaded by Zygote, reducing app startup time and sharing
// pages dirtied during library load between all apps.
struct GrallocModule {
    const hw_module_t* module;
    GrallocModule() : module(nullptr) {
IMapper* HIDL_FETCH_IMapper(const char* /* name */) {
    const hw_module_t* module = nullptr;
    int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module);
        ALOGE_IF(err, "failed to get gralloc module: %s (%d)", strerror(-err),
                 err);
    if (err) {
        ALOGE("failed to get gralloc module");
        return nullptr;
    }
};
GrallocModule gGralloc;
}  // namespace

IMapper* HIDL_FETCH_IMapper(const char* /* name */) {
    if (!gGralloc.module) return nullptr;

    uint8_t major = (gGralloc.module->module_api_version >> 8) & 0xff;
    uint8_t major = (module->module_api_version >> 8) & 0xff;
    switch (major) {
        case 1:
            return new Gralloc1Mapper(gGralloc.module);
            return new Gralloc1Mapper(module);
        case 0:
            return new Gralloc0Mapper(gGralloc.module);
            return new Gralloc0Mapper(module);
        default:
            ALOGE("unknown gralloc module major version %d", major);
            return nullptr;