diff options
author | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
---|---|---|
committer | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
commit | 915c76ded744c0f5f151402b9fa69f3fd8452573 (patch) | |
tree | ca6a387466543248890f346847acaa8343989b22 /Source/cmDynamicLoader.cxx | |
parent | 317dbdb79761ef65e45c7358cfc7571c6afa54ad (diff) | |
download | cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.gz cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.bz2 cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.zip |
Imported Upstream version 3.9.4upstream/3.9.4
Diffstat (limited to 'Source/cmDynamicLoader.cxx')
-rw-r--r-- | Source/cmDynamicLoader.cxx | 78 |
1 files changed, 33 insertions, 45 deletions
diff --git a/Source/cmDynamicLoader.cxx b/Source/cmDynamicLoader.cxx index 6a0ab7b1b..7fbe75c7b 100644 --- a/Source/cmDynamicLoader.cxx +++ b/Source/cmDynamicLoader.cxx @@ -1,106 +1,94 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmDynamicLoader.h" +#include <map> +#include <string> +#include <utility> + class cmDynamicLoaderCache { public: ~cmDynamicLoaderCache(); - void CacheFile(const char* path, - const cmsys::DynamicLoader::LibraryHandle&); - bool GetCacheFile(const char* path, cmsys::DynamicLoader::LibraryHandle&); + void CacheFile(const char* path, cmsys::DynamicLoader::LibraryHandle /*p*/); + bool GetCacheFile(const char* path, + cmsys::DynamicLoader::LibraryHandle& /*p*/); bool FlushCache(const char* path); void FlushCache(); static cmDynamicLoaderCache* GetInstance(); private: - std::map<cmStdString, cmsys::DynamicLoader::LibraryHandle> CacheMap; + std::map<std::string, cmsys::DynamicLoader::LibraryHandle> CacheMap; static cmDynamicLoaderCache* Instance; }; -cmDynamicLoaderCache* cmDynamicLoaderCache::Instance = 0; +cmDynamicLoaderCache* cmDynamicLoaderCache::Instance = CM_NULLPTR; cmDynamicLoaderCache::~cmDynamicLoaderCache() { } void cmDynamicLoaderCache::CacheFile(const char* path, - const cmsys::DynamicLoader::LibraryHandle& p) + cmsys::DynamicLoader::LibraryHandle p) { cmsys::DynamicLoader::LibraryHandle h; - if ( this->GetCacheFile(path, h) ) - { + if (this->GetCacheFile(path, h)) { this->FlushCache(path); - } + } this->CacheMap[path] = p; } bool cmDynamicLoaderCache::GetCacheFile(const char* path, - cmsys::DynamicLoader::LibraryHandle& p) + cmsys::DynamicLoader::LibraryHandle& p) { - std::map<cmStdString, cmsys::DynamicLoader::LibraryHandle>::iterator it - = this->CacheMap.find(path); - if ( it != this->CacheMap.end() ) - { + std::map<std::string, cmsys::DynamicLoader::LibraryHandle>::iterator it = + this->CacheMap.find(path); + if (it != this->CacheMap.end()) { p = it->second; return true; - } + } return false; } bool cmDynamicLoaderCache::FlushCache(const char* path) { - std::map<cmStdString, cmsys::DynamicLoader::LibraryHandle>::iterator it - = this->CacheMap.find(path); + std::map<std::string, cmsys::DynamicLoader::LibraryHandle>::iterator it = + this->CacheMap.find(path); bool ret = false; - if ( it != this->CacheMap.end() ) - { + if (it != this->CacheMap.end()) { cmsys::DynamicLoader::CloseLibrary(it->second); this->CacheMap.erase(it); ret = true; - } + } return ret; } void cmDynamicLoaderCache::FlushCache() { - for ( std::map<cmStdString, - cmsys::DynamicLoader::LibraryHandle>::iterator it - = this->CacheMap.begin(); - it != this->CacheMap.end(); it++ ) - { + for (std::map<std::string, cmsys::DynamicLoader::LibraryHandle>::iterator + it = this->CacheMap.begin(); + it != this->CacheMap.end(); it++) { cmsys::DynamicLoader::CloseLibrary(it->second); - } + } delete cmDynamicLoaderCache::Instance; - cmDynamicLoaderCache::Instance = 0; + cmDynamicLoaderCache::Instance = CM_NULLPTR; } cmDynamicLoaderCache* cmDynamicLoaderCache::GetInstance() { - if ( !cmDynamicLoaderCache::Instance ) - { + if (!cmDynamicLoaderCache::Instance) { cmDynamicLoaderCache::Instance = new cmDynamicLoaderCache; - } + } return cmDynamicLoaderCache::Instance; } cmsys::DynamicLoader::LibraryHandle cmDynamicLoader::OpenLibrary( - const char* libname ) + const char* libname) { cmsys::DynamicLoader::LibraryHandle lh; - if ( cmDynamicLoaderCache::GetInstance()->GetCacheFile(libname, lh) ) - { + if (cmDynamicLoaderCache::GetInstance()->GetCacheFile(libname, lh)) { return lh; - } + } lh = cmsys::DynamicLoader::OpenLibrary(libname); cmDynamicLoaderCache::GetInstance()->CacheFile(libname, lh); return lh; |