aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perl/lib/Nix/Store.xs2
-rw-r--r--src/libexpr/primops.cc4
-rw-r--r--src/libexpr/primops/fetchTree.cc2
-rw-r--r--src/libfetchers/fetchers.cc2
-rw-r--r--src/libfetchers/tarball.cc2
-rw-r--r--src/libstore/binary-cache-store.cc4
-rw-r--r--src/libstore/build/local-derivation-goal.cc2
-rw-r--r--src/libstore/content-address.cc4
-rw-r--r--src/libstore/content-address.hh10
-rw-r--r--src/libstore/local-store.cc2
-rw-r--r--src/libstore/make-content-addressed.cc2
-rw-r--r--src/libstore/path-info.cc4
-rw-r--r--src/libstore/store-api.cc16
-rw-r--r--src/nix-store/nix-store.cc2
-rw-r--r--src/nix/add-to-store.cc2
-rw-r--r--src/nix/prefetch.cc2
-rw-r--r--src/nix/profile.cc2
17 files changed, 33 insertions, 31 deletions
diff --git a/perl/lib/Nix/Store.xs b/perl/lib/Nix/Store.xs
index fca7607d3..bfe00d3e2 100644
--- a/perl/lib/Nix/Store.xs
+++ b/perl/lib/Nix/Store.xs
@@ -296,7 +296,7 @@ SV * makeFixedOutputPath(int recursive, char * algo, char * hash, char * name)
auto h = Hash::parseAny(hash, parseHashType(algo));
auto method = recursive ? FileIngestionMethod::Recursive : FileIngestionMethod::Flat;
auto path = store()->makeFixedOutputPath(name, FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = h,
},
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index a54cca5ab..7af796aa6 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -1283,7 +1283,7 @@ drvName, Bindings * attrs, Value & v)
auto method = ingestionMethod.value_or(FileIngestionMethod::Flat);
auto outPath = state.store->makeFixedOutputPath(drvName, FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = h,
},
@@ -2099,7 +2099,7 @@ static void addPath(
std::optional<StorePath> expectedStorePath;
if (expectedHash)
expectedStorePath = state.store->makeFixedOutputPath(name, FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = *expectedHash,
},
diff --git a/src/libexpr/primops/fetchTree.cc b/src/libexpr/primops/fetchTree.cc
index 93592290f..f3dce2214 100644
--- a/src/libexpr/primops/fetchTree.cc
+++ b/src/libexpr/primops/fetchTree.cc
@@ -246,7 +246,7 @@ static void fetch(EvalState & state, const PosIdx pos, Value * * args, Value & v
auto expectedPath = state.store->makeFixedOutputPath(
name,
FixedOutputInfo {
- {
+ .hash = {
.method = unpack ? FileIngestionMethod::Recursive : FileIngestionMethod::Flat,
.hash = *expectedHash,
},
diff --git a/src/libfetchers/fetchers.cc b/src/libfetchers/fetchers.cc
index 3936eadfe..91db3a9eb 100644
--- a/src/libfetchers/fetchers.cc
+++ b/src/libfetchers/fetchers.cc
@@ -211,7 +211,7 @@ StorePath Input::computeStorePath(Store & store) const
if (!narHash)
throw Error("cannot compute store path for unlocked input '%s'", to_string());
return store.makeFixedOutputPath(getName(), FixedOutputInfo {
- {
+ .hash = {
.method = FileIngestionMethod::Recursive,
.hash = *narHash,
},
diff --git a/src/libfetchers/tarball.cc b/src/libfetchers/tarball.cc
index 302046610..96fe5faca 100644
--- a/src/libfetchers/tarball.cc
+++ b/src/libfetchers/tarball.cc
@@ -74,7 +74,7 @@ DownloadFileResult downloadFile(
*store,
name,
FixedOutputInfo {
- {
+ .hash = {
.method = FileIngestionMethod::Flat,
.hash = hash,
},
diff --git a/src/libstore/binary-cache-store.cc b/src/libstore/binary-cache-store.cc
index 9cb0f74f6..9eae8d534 100644
--- a/src/libstore/binary-cache-store.cc
+++ b/src/libstore/binary-cache-store.cc
@@ -309,7 +309,7 @@ StorePath BinaryCacheStore::addToStoreFromDump(Source & dump, std::string_view n
*this,
name,
FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = nar.first,
},
@@ -427,7 +427,7 @@ StorePath BinaryCacheStore::addToStore(
*this,
name,
FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = h,
},
diff --git a/src/libstore/build/local-derivation-goal.cc b/src/libstore/build/local-derivation-goal.cc
index 765bb8f35..87eac6e19 100644
--- a/src/libstore/build/local-derivation-goal.cc
+++ b/src/libstore/build/local-derivation-goal.cc
@@ -2442,7 +2442,7 @@ DrvOutputs LocalDerivationGoal::registerOutputs()
worker.store,
outputPathName(drv->name, outputName),
FixedOutputInfo {
- {
+ .hash = {
.method = outputHash.method,
.hash = got,
},
diff --git a/src/libstore/content-address.cc b/src/libstore/content-address.cc
index a51646d0f..d9a8a4535 100644
--- a/src/libstore/content-address.cc
+++ b/src/libstore/content-address.cc
@@ -166,13 +166,13 @@ ContentAddressWithReferences caWithoutRefs(const ContentAddress & ca) {
return std::visit(overloaded {
[&](const TextHash & h) -> ContentAddressWithReferences {
return TextInfo {
- h,
+ .hash = h,
.references = {},
};
},
[&](const FixedOutputHash & h) -> ContentAddressWithReferences {
return FixedOutputInfo {
- h,
+ .hash = h,
.references = {},
};
},
diff --git a/src/libstore/content-address.hh b/src/libstore/content-address.hh
index c49ab269f..9fae288d8 100644
--- a/src/libstore/content-address.hh
+++ b/src/libstore/content-address.hh
@@ -111,18 +111,20 @@ struct StoreReferences {
*/
// This matches the additional info that we need for makeTextPath
-struct TextInfo : TextHash {
+struct TextInfo {
+ TextHash hash;
// References for the paths, self references disallowed
StorePathSet references;
- GENERATE_CMP(TextInfo, *(const TextHash *)me, me->references);
+ GENERATE_CMP(TextInfo, me->hash, me->references);
};
-struct FixedOutputInfo : FixedOutputHash {
+struct FixedOutputInfo {
+ FixedOutputHash hash;
// References for the paths
StoreReferences references;
- GENERATE_CMP(FixedOutputInfo, *(const FixedOutputHash *)me, me->references);
+ GENERATE_CMP(FixedOutputInfo, me->hash, me->references);
};
typedef std::variant<
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index c6f870dde..8b33b2da5 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -1415,7 +1415,7 @@ StorePath LocalStore::addToStoreFromDump(Source & source0, std::string_view name
auto [hash, size] = hashSink->finish();
ContentAddressWithReferences desc = FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = hash,
},
diff --git a/src/libstore/make-content-addressed.cc b/src/libstore/make-content-addressed.cc
index 42de79226..53fe04704 100644
--- a/src/libstore/make-content-addressed.cc
+++ b/src/libstore/make-content-addressed.cc
@@ -52,7 +52,7 @@ std::map<StorePath, StorePath> makeContentAddressed(
dstStore,
path.name(),
FixedOutputInfo {
- {
+ .hash = {
.method = FileIngestionMethod::Recursive,
.hash = narModuloHash,
},
diff --git a/src/libstore/path-info.cc b/src/libstore/path-info.cc
index 2a03e9dfa..76cab63e0 100644
--- a/src/libstore/path-info.cc
+++ b/src/libstore/path-info.cc
@@ -30,7 +30,7 @@ std::optional<ContentAddressWithReferences> ValidPathInfo::contentAddressWithRef
[&](const TextHash & th) -> ContentAddressWithReferences {
assert(references.count(path) == 0);
return TextInfo {
- th,
+ .hash = th,
.references = references,
};
},
@@ -42,7 +42,7 @@ std::optional<ContentAddressWithReferences> ValidPathInfo::contentAddressWithRef
refs.erase(path);
}
return FixedOutputInfo {
- foh,
+ .hash = foh,
.references = {
.others = std::move(refs),
.self = hasSelfReference,
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index 1c01c9cd8..b8a77b324 100644
--- a/src/libstore/store-api.cc
+++ b/src/libstore/store-api.cc
@@ -184,15 +184,15 @@ static std::string makeType(
StorePath Store::makeFixedOutputPath(std::string_view name, const FixedOutputInfo & info) const
{
- if (info.hash.type == htSHA256 && info.method == FileIngestionMethod::Recursive) {
- return makeStorePath(makeType(*this, "source", info.references), info.hash, name);
+ if (info.hash.hash.type == htSHA256 && info.hash.method == FileIngestionMethod::Recursive) {
+ return makeStorePath(makeType(*this, "source", info.references), info.hash.hash, name);
} else {
assert(info.references.size() == 0);
return makeStorePath("output:out",
hashString(htSHA256,
"fixed:out:"
- + makeFileIngestionPrefix(info.method)
- + info.hash.to_string(Base16, true) + ":"),
+ + makeFileIngestionPrefix(info.hash.method)
+ + info.hash.hash.to_string(Base16, true) + ":"),
name);
}
}
@@ -200,13 +200,13 @@ StorePath Store::makeFixedOutputPath(std::string_view name, const FixedOutputInf
StorePath Store::makeTextPath(std::string_view name, const TextInfo & info) const
{
- assert(info.hash.type == htSHA256);
+ assert(info.hash.hash.type == htSHA256);
return makeStorePath(
makeType(*this, "text", StoreReferences {
.others = info.references,
.self = false,
}),
- info.hash,
+ info.hash.hash,
name);
}
@@ -232,7 +232,7 @@ std::pair<StorePath, Hash> Store::computeStorePathForPath(std::string_view name,
? hashPath(hashAlgo, srcPath, filter).first
: hashFile(hashAlgo, srcPath);
FixedOutputInfo caInfo {
- {
+ .hash = {
.method = method,
.hash = h,
},
@@ -441,7 +441,7 @@ ValidPathInfo Store::addToStoreSlow(std::string_view name, const Path & srcPath,
*this,
name,
FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = hash,
},
diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc
index 5b261ecc6..735d6a592 100644
--- a/src/nix-store/nix-store.cc
+++ b/src/nix-store/nix-store.cc
@@ -216,7 +216,7 @@ static void opPrintFixedPath(Strings opFlags, Strings opArgs)
std::string name = *i++;
cout << fmt("%s\n", store->printStorePath(store->makeFixedOutputPath(name, FixedOutputInfo {
- {
+ .hash = {
.method = method,
.hash = Hash::parseAny(hash, hashAlgo),
},
diff --git a/src/nix/add-to-store.cc b/src/nix/add-to-store.cc
index 81dbc09a6..16e48a39b 100644
--- a/src/nix/add-to-store.cc
+++ b/src/nix/add-to-store.cc
@@ -45,7 +45,7 @@ struct CmdAddToStore : MixDryRun, StoreCommand
*store,
std::move(*namePart),
FixedOutputInfo {
- {
+ .hash = {
.method = std::move(ingestionMethod),
.hash = std::move(hash),
},
diff --git a/src/nix/prefetch.cc b/src/nix/prefetch.cc
index df9933d29..209517b21 100644
--- a/src/nix/prefetch.cc
+++ b/src/nix/prefetch.cc
@@ -68,7 +68,7 @@ std::tuple<StorePath, Hash> prefetchFile(
if (expectedHash) {
hashType = expectedHash->type;
storePath = store->makeFixedOutputPath(*name, FixedOutputInfo {
- {
+ .hash = {
.method = ingestionMethod,
.hash = *expectedHash,
},
diff --git a/src/nix/profile.cc b/src/nix/profile.cc
index 5505d8bdd..04ac48f00 100644
--- a/src/nix/profile.cc
+++ b/src/nix/profile.cc
@@ -203,7 +203,7 @@ struct ProfileManifest
*store,
"profile",
FixedOutputInfo {
- {
+ .hash = {
.method = FileIngestionMethod::Recursive,
.hash = narHash,
},