}
XWalkExtensionManager::~XWalkExtensionManager() {
+ for (auto dlhandle : handle_)
+ dlclose(dlhandle);
}
void XWalkExtensionManager::PreloadExtensions() {
for (int i = 0; kPreloadLibs[i]; i++) {
LOGGER(DEBUG) << "Preload libs : " << kPreloadLibs[i];
- void* handle = dlopen(kPreloadLibs[i], RTLD_NOW|RTLD_GLOBAL);
- if (handle == nullptr) {
+ void *dlhandle = dlopen(kPreloadLibs[i], RTLD_NOW|RTLD_GLOBAL);
+ if (dlhandle == nullptr)
LOGGER(WARN) << "Fail to load libs : " << dlerror();
- }
+ else
+ handle_.push_back(dlhandle);
}
}