diff --git a/graphics/mapper/2.0/default/GrallocMapper.cpp b/graphics/mapper/2.0/default/GrallocMapper.cpp index e06fbcbc1e..d16143da49 100644 --- a/graphics/mapper/2.0/default/GrallocMapper.cpp +++ b/graphics/mapper/2.0/default/GrallocMapper.cpp @@ -293,31 +293,20 @@ Return 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) { - int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module); - ALOGE_IF(err, "failed to get gralloc module: %s (%d)", strerror(-err), - err); - } -}; -GrallocModule gGralloc; -} // namespace - IMapper* HIDL_FETCH_IMapper(const char* /* name */) { - if (!gGralloc.module) return nullptr; + const hw_module_t* module = nullptr; + int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module); + if (err) { + ALOGE("failed to get gralloc 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;