1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 23:11:16 +02:00

Merge pull request #11092 from DeterminateSystems/hash-SourcePath

Use std::unordered_map for the EvalState caches
This commit is contained in:
Eelco Dolstra 2024-07-16 11:06:43 +02:00 committed by GitHub
commit 9c6678da0e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 37 additions and 8 deletions

View file

@ -9,6 +9,8 @@
#include "canon-path.hh"
#include "source-accessor.hh"
#include <boost/functional/hash.hpp> // for boost::hash_combine
namespace nix {
/**
@ -114,8 +116,21 @@ struct SourcePath
{
return {accessor, accessor->resolveSymlinks(path, mode)};
}
friend class std::hash<nix::SourcePath>;
};
std::ostream & operator << (std::ostream & str, const SourcePath & path);
}
template<>
struct std::hash<nix::SourcePath>
{
std::size_t operator()(const nix::SourcePath & s) const noexcept
{
std::size_t hash = 0;
hash_combine(hash, s.accessor->number, s.path);
return hash;
}
};