Merged in DRTVWR-519 (pull request #596)
Change all remaining boost::filesystem methods to their non-throwing overloads Authored-by: FS:Ansariel Approved-by: Callum Lindenmeow-7.2.2
commit
55bddf213f
|
|
@ -87,6 +87,7 @@ void LLDiskCache::purge()
|
|||
LL_INFOS() << "Total dir size before purge is " << dirFileSize(mCacheDir) << LL_ENDL;
|
||||
}
|
||||
|
||||
boost::system::error_code ec;
|
||||
auto start_time = std::chrono::high_resolution_clock::now();
|
||||
|
||||
typedef std::pair<std::time_t, std::pair<uintmax_t, std::string>> file_info_t;
|
||||
|
|
@ -97,17 +98,25 @@ void LLDiskCache::purge()
|
|||
#else
|
||||
std::string cache_path(mCacheDir);
|
||||
#endif
|
||||
if (boost::filesystem::is_directory(cache_path))
|
||||
if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed())
|
||||
{
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(cache_path), {}))
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(cache_path, ec), {}))
|
||||
{
|
||||
if (boost::filesystem::is_regular_file(entry))
|
||||
if (boost::filesystem::is_regular_file(entry, ec) && !ec.failed())
|
||||
{
|
||||
if (entry.path().string().find(mCacheFilenamePrefix) != std::string::npos)
|
||||
{
|
||||
uintmax_t file_size = boost::filesystem::file_size(entry);
|
||||
uintmax_t file_size = boost::filesystem::file_size(entry, ec);
|
||||
if (ec.failed())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
const std::string file_path = entry.path().string();
|
||||
const std::time_t file_time = boost::filesystem::last_write_time(entry);
|
||||
const std::time_t file_time = boost::filesystem::last_write_time(entry, ec);
|
||||
if (ec.failed())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
file_info.push_back(file_info_t(file_time, { file_size, file_path }));
|
||||
}
|
||||
|
|
@ -131,7 +140,6 @@ void LLDiskCache::purge()
|
|||
if (file_size_total > mMaxSizeBytes)
|
||||
{
|
||||
action = "DELETE:";
|
||||
boost::system::error_code ec;
|
||||
boost::filesystem::remove(entry.second.second, ec);
|
||||
if (ec.failed())
|
||||
{
|
||||
|
|
@ -321,20 +329,20 @@ void LLDiskCache::clearCache()
|
|||
* the component files but it's called infrequently so it's
|
||||
* likely just fine
|
||||
*/
|
||||
boost::system::error_code ec;
|
||||
#if LL_WINDOWS
|
||||
std::wstring cache_path(utf8str_to_utf16str(mCacheDir));
|
||||
#else
|
||||
std::string cache_path(mCacheDir);
|
||||
#endif
|
||||
if (boost::filesystem::is_directory(cache_path))
|
||||
if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed())
|
||||
{
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(cache_path), {}))
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(cache_path, ec), {}))
|
||||
{
|
||||
if (boost::filesystem::is_regular_file(entry))
|
||||
if (boost::filesystem::is_regular_file(entry, ec) && !ec.failed())
|
||||
{
|
||||
if (entry.path().string().find(mCacheFilenamePrefix) != std::string::npos)
|
||||
{
|
||||
boost::system::error_code ec;
|
||||
boost::filesystem::remove(entry, ec);
|
||||
if (ec.failed())
|
||||
{
|
||||
|
|
@ -359,20 +367,25 @@ uintmax_t LLDiskCache::dirFileSize(const std::string dir)
|
|||
* so if performance is ever an issue, optimizing this or removing it altogether,
|
||||
* is an easy win.
|
||||
*/
|
||||
boost::system::error_code ec;
|
||||
#if LL_WINDOWS
|
||||
std::wstring dir_path(utf8str_to_utf16str(dir));
|
||||
#else
|
||||
std::string dir_path(dir);
|
||||
#endif
|
||||
if (boost::filesystem::is_directory(dir_path))
|
||||
if (boost::filesystem::is_directory(dir_path, ec) && !ec.failed())
|
||||
{
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(dir_path), {}))
|
||||
for (auto& entry : boost::make_iterator_range(boost::filesystem::directory_iterator(dir_path, ec), {}))
|
||||
{
|
||||
if (boost::filesystem::is_regular_file(entry))
|
||||
if (boost::filesystem::is_regular_file(entry, ec) && !ec.failed())
|
||||
{
|
||||
if (entry.path().string().find(mCacheFilenamePrefix) != std::string::npos)
|
||||
{
|
||||
total_file_size += boost::filesystem::file_size(entry);
|
||||
uintmax_t file_size = boost::filesystem::file_size(entry, ec);
|
||||
if (!ec.failed())
|
||||
{
|
||||
total_file_size += file_size;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue