diff options
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build.cc | 2 | ||||
-rw-r--r-- | src/libstore/content-address.cc | 8 | ||||
-rw-r--r-- | src/libstore/content-address.hh | 14 | ||||
-rw-r--r-- | src/libstore/derivations.cc | 16 | ||||
-rw-r--r-- | src/libstore/derivations.hh | 2 | ||||
-rw-r--r-- | src/libstore/local-store.cc | 2 | ||||
-rw-r--r-- | src/libstore/store-api.cc | 2 |
7 files changed, 18 insertions, 28 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index ecd447495..1126c186f 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -3764,7 +3764,7 @@ void DerivationGoal::registerOutputs() else assert(worker.store.parseStorePath(path) == dest); - ca = FileSystemHash { i.second.hash->method, h2 }; + ca = FixedOutputHash { i.second.hash->method, h2 }; } /* Get rid of all weird permissions. This also checks that diff --git a/src/libstore/content-address.cc b/src/libstore/content-address.cc index 7de5c0874..98b3677bb 100644 --- a/src/libstore/content-address.cc +++ b/src/libstore/content-address.cc @@ -2,7 +2,7 @@ namespace nix { -std::string FileSystemHash::printMethodAlgo() const { +std::string FixedOutputHash::printMethodAlgo() const { return makeFileIngestionPrefix(method) + printHashType(*hash.type); } @@ -33,7 +33,7 @@ std::string renderContentAddress(ContentAddress ca) { [](TextHash th) { return "text:" + th.hash.to_string(Base32, true); }, - [](FileSystemHash fsh) { + [](FixedOutputHash fsh) { return makeFixedOutputCA(fsh.method, fsh.hash); } }, ca); @@ -55,10 +55,10 @@ ContentAddress parseContentAddress(std::string_view rawCa) { auto methodAndHash = rawCa.substr(prefixSeparator+1, string::npos); if (methodAndHash.substr(0,2) == "r:") { std::string_view hashRaw = methodAndHash.substr(2,string::npos); - return FileSystemHash { FileIngestionMethod::Recursive, Hash(string(hashRaw)) }; + return FixedOutputHash { FileIngestionMethod::Recursive, Hash(string(hashRaw)) }; } else { std::string_view hashRaw = methodAndHash; - return FileSystemHash { FileIngestionMethod::Flat, Hash(string(hashRaw)) }; + return FixedOutputHash { FileIngestionMethod::Flat, Hash(string(hashRaw)) }; } } else { throw Error("parseContentAddress: format not recognized; has to be text or fixed"); diff --git a/src/libstore/content-address.hh b/src/libstore/content-address.hh index 64d514751..ba4797f5b 100644 --- a/src/libstore/content-address.hh +++ b/src/libstore/content-address.hh @@ -12,22 +12,12 @@ enum struct FileIngestionMethod : uint8_t { struct TextHash { Hash hash; - TextHash(const TextHash &) = default; - TextHash(TextHash &&) = default; - TextHash & operator = (const TextHash &) = default; }; /// Pair of a hash, and how the file system was ingested -struct FileSystemHash { +struct FixedOutputHash { FileIngestionMethod method; Hash hash; - FileSystemHash(FileIngestionMethod method, Hash hash) - : method(std::move(method)) - , hash(std::move(hash)) - { } - FileSystemHash(const FileSystemHash &) = default; - FileSystemHash(FileSystemHash &&) = default; - FileSystemHash & operator = (const FileSystemHash &) = default; std::string printMethodAlgo() const; }; @@ -44,7 +34,7 @@ struct FileSystemHash { */ typedef std::variant< TextHash, // for paths computed by makeTextPath() / addTextToStore - FileSystemHash // for path computed by makeFixedOutputPath + FixedOutputHash // for path computed by makeFixedOutputPath > ContentAddress; /* Compute the prefix to the hash algorithm which indicates how the files were diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc index 6383e31f4..6c49075ba 100644 --- a/src/libstore/derivations.cc +++ b/src/libstore/derivations.cc @@ -108,7 +108,7 @@ static DerivationOutput parseDerivationOutput(const Store & store, istringstream expect(str, ","); const auto hash = parseString(str); expect(str, ")"); - std::optional<FileSystemHash> fsh; + std::optional<FixedOutputHash> fsh; if (hashAlgo != "") { auto method = FileIngestionMethod::Flat; if (string(hashAlgo, 0, 2) == "r:") { @@ -116,9 +116,9 @@ static DerivationOutput parseDerivationOutput(const Store & store, istringstream hashAlgo = string(hashAlgo, 2); } const HashType hashType = parseHashType(hashAlgo); - fsh = FileSystemHash { - std::move(method), - Hash(hash, hashType), + fsh = FixedOutputHash { + .method = std::move(method), + .hash = Hash(hash, hashType), }; } @@ -406,7 +406,7 @@ static DerivationOutput readDerivationOutput(Source & in, const Store & store) auto hashAlgo = readString(in); const auto hash = readString(in); - std::optional<FileSystemHash> fsh; + std::optional<FixedOutputHash> fsh; if (hashAlgo != "") { auto method = FileIngestionMethod::Flat; if (string(hashAlgo, 0, 2) == "r:") { @@ -414,9 +414,9 @@ static DerivationOutput readDerivationOutput(Source & in, const Store & store) hashAlgo = string(hashAlgo, 2); } const HashType hashType = parseHashType(hashAlgo); - fsh = FileSystemHash { - std::move(method), - Hash(hash, hashType), + fsh = FixedOutputHash { + .method = std::move(method), + .hash = Hash(hash, hashType), }; } diff --git a/src/libstore/derivations.hh b/src/libstore/derivations.hh index b2f3ff03b..68c53c1ff 100644 --- a/src/libstore/derivations.hh +++ b/src/libstore/derivations.hh @@ -16,7 +16,7 @@ namespace nix { struct DerivationOutput { StorePath path; - std::optional<FileSystemHash> hash; /* hash used for expected hash computation */ + std::optional<FixedOutputHash> hash; /* hash used for expected hash computation */ }; typedef std::map<string, DerivationOutput> DerivationOutputs; diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 17d678b9f..f9b2db2e3 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -1079,7 +1079,7 @@ StorePath LocalStore::addToStoreFromDump(const string & dump, const string & nam ValidPathInfo info(dstPath); info.narHash = hash.first; info.narSize = hash.second; - info.ca = FileSystemHash { method, h }; + info.ca = FixedOutputHash { method, h }; registerValidPath(info); } diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index 60d1d22a2..e4a4ae11e 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -769,7 +769,7 @@ bool ValidPathInfo::isContentAddressed(const Store & store) const [&](TextHash th) { return store.makeTextPath(path.name(), th.hash, references); }, - [&](FileSystemHash fsh) { + [&](FixedOutputHash fsh) { auto refs = references; bool hasSelfReference = false; if (refs.count(path)) { |