storage/State: use std::set instead of sorting a std::list

This commit is contained in:
Max Kellermann 2017-12-18 23:50:31 +01:00
parent c88056ba83
commit 3d1d779da7

View File

@ -35,7 +35,7 @@
#include "IOThread.hxx" #include "IOThread.hxx"
#include "Log.hxx" #include "Log.hxx"
#include <list> #include <set>
#include <boost/crc.hpp> #include <boost/crc.hpp>
#define MOUNT_STATE_BEGIN "mount_begin" #define MOUNT_STATE_BEGIN "mount_begin"
@ -118,16 +118,14 @@ storage_state_restore(const char *line, TextFile &file, Instance &instance)
unsigned unsigned
storage_state_get_hash(const Instance &instance) storage_state_get_hash(const Instance &instance)
{ {
std::list<std::string> mounts; std::set<std::string> mounts;
const auto visitor = [&mounts](const char *mount_uri, const Storage &storage) { const auto visitor = [&mounts](const char *mount_uri, const Storage &storage) {
mounts.push_back(std::string(mount_uri) + ":" + storage.MapUTF8("")); mounts.emplace(std::string(mount_uri) + ":" + storage.MapUTF8(""));
}; };
((CompositeStorage*)instance.storage)->VisitMounts(visitor); ((CompositeStorage*)instance.storage)->VisitMounts(visitor);
mounts.sort();
boost::crc_32_type result; boost::crc_32_type result;
for (auto mount: mounts) { for (auto mount: mounts) {