From 805ccdf83eca0541c3e64f7ea0fa3c11acbbaa3a Mon Sep 17 00:00:00 2001 From: WrinklyNinja Date: Tue, 26 Aug 2014 00:22:47 +0100 Subject: [PATCH] Replaced Plugin hasher with std specialisation. --- src/backend/game.cpp | 2 +- src/backend/game.h | 2 +- src/backend/git.cpp | 2 +- src/backend/metadata.cpp | 6 ------ src/backend/metadata.h | 16 +++++++++++----- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/backend/game.cpp b/src/backend/game.cpp index 291ea7fe..d1486017 100644 --- a/src/backend/game.cpp +++ b/src/backend/game.cpp @@ -108,7 +108,7 @@ namespace loot { in.close(); if (metadataList["plugins"]) - plugins = metadataList["plugins"].as< unordered_set >(); + plugins = metadataList["plugins"].as< unordered_set >(); if (metadataList["globals"]) messages = metadataList["globals"].as< list >(); diff --git a/src/backend/game.h b/src/backend/game.h index 8d745b77..6996624c 100644 --- a/src/backend/game.h +++ b/src/backend/game.h @@ -61,7 +61,7 @@ namespace loot { bool operator == (const MetadataList& rhs) const; //Compares content. - std::unordered_set plugins; + std::unordered_set plugins; std::list messages; }; diff --git a/src/backend/git.cpp b/src/backend/git.cpp index 48e2396e..a49b79cb 100644 --- a/src/backend/git.cpp +++ b/src/backend/git.cpp @@ -431,7 +431,7 @@ namespace loot { try { this->MetadataList::Load(game.MasterlistPath()); - unordered_set tempSet; + unordered_set tempSet; for (auto &plugin : plugins) { tempSet.insert(Plugin(plugin).EvalAllConditions(game, language)); } diff --git a/src/backend/metadata.cpp b/src/backend/metadata.cpp index fda62353..978a60df 100644 --- a/src/backend/metadata.cpp +++ b/src/backend/metadata.cpp @@ -798,12 +798,6 @@ namespace loot { return boost::filesystem::exists(game.DataPath() / (name.substr(0, name.length() - 3) + "bsa")); } - size_t plugin_hash::operator () (const Plugin& p) const { - size_t seed = 0; - boost::hash_combine(seed, boost::locale::to_lower(p.Name())); - return seed; - } - bool operator == (const File& lhs, const Plugin& rhs) { return boost::iequals(lhs.Name(), rhs.Name()); } diff --git a/src/backend/metadata.h b/src/backend/metadata.h index 48aab97b..c85acbe1 100644 --- a/src/backend/metadata.h +++ b/src/backend/metadata.h @@ -32,6 +32,8 @@ #include #include +#include + namespace loot { const unsigned int max_priority = 1000000; @@ -243,11 +245,6 @@ namespace loot { size_t numOverrideRecords; }; - struct plugin_hash : std::unary_function { - size_t operator () (const Plugin& p) const; - }; - - bool operator == (const File& lhs, const Plugin& rhs); bool operator == (const Plugin& lhs, const File& rhs); @@ -257,4 +254,13 @@ namespace loot { bool IsPlugin(const std::string& file); } +namespace std { + template<> + struct hash < loot::Plugin > { + size_t operator() (const loot::Plugin& plugin) { + return hash()(boost::locale::to_lower(plugin.Name())); + } + }; +} + #endif