aboutsummaryrefslogtreecommitdiff
path: root/src/nix
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-06-16 22:20:18 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-06-16 22:20:18 +0200
commit29542865cee37ab22efe1bd142900b69f6c59f0d (patch)
tree0115a7d831276f14144aeaeae430e680e5ab0297 /src/nix
parentdf4da4f5da1e390ac1eef5bfd455a8cf85dfe52c (diff)
Remove StorePath::clone() and related functions
Diffstat (limited to 'src/nix')
-rw-r--r--src/nix/command.cc10
-rw-r--r--src/nix/copy.cc2
-rw-r--r--src/nix/develop.cc6
-rw-r--r--src/nix/installables.cc22
-rw-r--r--src/nix/make-content-addressable.cc6
-rw-r--r--src/nix/path-info.cc2
-rw-r--r--src/nix/run.cc6
-rw-r--r--src/nix/why-depends.cc6
8 files changed, 30 insertions, 30 deletions
diff --git a/src/nix/command.cc b/src/nix/command.cc
index 71b027719..d62626c26 100644
--- a/src/nix/command.cc
+++ b/src/nix/command.cc
@@ -59,19 +59,19 @@ void StorePathsCommand::run(ref<Store> store)
if (installables.size())
throw UsageError("'--all' does not expect arguments");
for (auto & p : store->queryAllValidPaths())
- storePaths.push_back(p.clone());
+ storePaths.push_back(p);
}
else {
for (auto & p : toStorePaths(store, realiseMode, installables))
- storePaths.push_back(p.clone());
+ storePaths.push_back(p);
if (recursive) {
StorePathSet closure;
- store->computeFSClosure(storePathsToSet(storePaths), closure, false, false);
+ store->computeFSClosure(StorePathSet(storePaths.begin(), storePaths.end()), closure, false, false);
storePaths.clear();
for (auto & p : closure)
- storePaths.push_back(p.clone());
+ storePaths.push_back(p);
}
}
@@ -133,7 +133,7 @@ void MixProfile::updateProfile(const Buildables & buildables)
for (auto & output : buildable.outputs) {
if (result)
throw Error("'--profile' requires that the arguments produce a single store path, but there are multiple");
- result = output.second.clone();
+ result = output.second;
}
}
diff --git a/src/nix/copy.cc b/src/nix/copy.cc
index c7c38709d..64099f476 100644
--- a/src/nix/copy.cc
+++ b/src/nix/copy.cc
@@ -94,7 +94,7 @@ struct CmdCopy : StorePathsCommand
ref<Store> dstStore = dstUri.empty() ? openStore() : openStore(dstUri);
- copyPaths(srcStore, dstStore, storePathsToSet(storePaths),
+ copyPaths(srcStore, dstStore, StorePathSet(storePaths.begin(), storePaths.end()),
NoRepair, checkSigs, substitute);
}
};
diff --git a/src/nix/develop.cc b/src/nix/develop.cc
index 3045d7dc3..05a9b9cd9 100644
--- a/src/nix/develop.cc
+++ b/src/nix/develop.cc
@@ -135,12 +135,12 @@ StorePath getDerivationEnvironment(ref<Store> store, const StorePath & drvPath)
drv.inputSrcs.insert(std::move(getEnvShPath));
Hash h = hashDerivationModulo(*store, drv, true);
auto shellOutPath = store->makeOutputPath("out", h, drvName);
- drv.outputs.insert_or_assign("out", DerivationOutput(shellOutPath.clone(), "", ""));
+ drv.outputs.insert_or_assign("out", DerivationOutput { shellOutPath, "", "" });
drv.env["out"] = store->printStorePath(shellOutPath);
auto shellDrvPath2 = writeDerivation(store, drv, drvName);
/* Build the derivation. */
- store->buildPaths({shellDrvPath2});
+ store->buildPaths({{shellDrvPath2}});
assert(store->isValidPath(shellOutPath));
@@ -205,7 +205,7 @@ struct Common : InstallableCommand, MixProfile
{
auto path = installable->getStorePath();
if (path && hasSuffix(path->to_string(), "-env"))
- return path->clone();
+ return *path;
else {
auto drvs = toDerivations(store, {installable});
diff --git a/src/nix/installables.cc b/src/nix/installables.cc
index 937d69206..708a0dc88 100644
--- a/src/nix/installables.cc
+++ b/src/nix/installables.cc
@@ -102,9 +102,9 @@ struct InstallableStorePath : Installable
Buildables toBuildables() override
{
std::map<std::string, StorePath> outputs;
- outputs.insert_or_assign("out", storePath.clone());
+ outputs.insert_or_assign("out", storePath);
Buildable b{
- .drvPath = storePath.isDerivation() ? storePath.clone() : std::optional<StorePath>(),
+ .drvPath = storePath.isDerivation() ? storePath : std::optional<StorePath>(),
.outputs = std::move(outputs)
};
Buildables bs;
@@ -114,7 +114,7 @@ struct InstallableStorePath : Installable
std::optional<StorePath> getStorePath() override
{
- return storePath.clone();
+ return storePath;
}
};
@@ -141,7 +141,7 @@ struct InstallableValue : Installable
for (auto & drv : drvs) {
Buildable b{.drvPath = state->store->parseStorePath(drv.queryDrvPath())};
- drvPaths.insert(b.drvPath->clone());
+ drvPaths.insert(*b.drvPath);
auto outputName = drv.queryOutputName();
if (outputName == "")
@@ -155,10 +155,10 @@ struct InstallableValue : Installable
// Hack to recognize .all: if all drvs have the same drvPath,
// merge the buildables.
if (drvPaths.size() == 1) {
- Buildable b{.drvPath = drvPaths.begin()->clone()};
+ Buildable b{.drvPath = *drvPaths.begin()};
for (auto & b2 : res)
for (auto & output : b2.outputs)
- b.outputs.insert_or_assign(output.first, output.second.clone());
+ b.outputs.insert_or_assign(output.first, output.second);
Buildables bs;
bs.push_back(std::move(b));
return bs;
@@ -273,7 +273,7 @@ Buildables build(ref<Store> store, RealiseMode mode,
pathsToBuild.push_back({*b.drvPath, outputNames});
} else
for (auto & output : b.outputs)
- pathsToBuild.push_back({output.second.clone()});
+ pathsToBuild.push_back({output.second});
buildables.push_back(std::move(b));
}
}
@@ -293,7 +293,7 @@ StorePathSet toStorePaths(ref<Store> store, RealiseMode mode,
for (auto & b : build(store, mode, installables))
for (auto & output : b.outputs)
- outPaths.insert(output.second.clone());
+ outPaths.insert(output.second);
return outPaths;
}
@@ -306,7 +306,7 @@ StorePath toStorePath(ref<Store> store, RealiseMode mode,
if (paths.size() != 1)
throw Error("argument '%s' should evaluate to one store path", installable->what());
- return paths.begin()->clone();
+ return *paths.begin();
}
StorePathSet toDerivations(ref<Store> store,
@@ -324,10 +324,10 @@ StorePathSet toDerivations(ref<Store> store,
if (derivers.empty())
throw Error("'%s' does not have a known deriver", i->what());
// FIXME: use all derivers?
- drvPaths.insert(derivers.begin()->clone());
+ drvPaths.insert(*derivers.begin());
}
} else
- drvPaths.insert(b.drvPath->clone());
+ drvPaths.insert(*b.drvPath);
}
return drvPaths;
diff --git a/src/nix/make-content-addressable.cc b/src/nix/make-content-addressable.cc
index 1211dad7b..0ebb8f13b 100644
--- a/src/nix/make-content-addressable.cc
+++ b/src/nix/make-content-addressable.cc
@@ -36,7 +36,7 @@ struct CmdMakeContentAddressable : StorePathsCommand, MixJSON
void run(ref<Store> store, StorePaths storePaths) override
{
- auto paths = store->topoSortPaths(storePathsToSet(storePaths));
+ auto paths = store->topoSortPaths(StorePathSet(storePaths.begin(), storePaths.end()));
std::reverse(paths.begin(), paths.end());
@@ -62,7 +62,7 @@ struct CmdMakeContentAddressable : StorePathsCommand, MixJSON
hasSelfReference = true;
else {
auto i = remappings.find(ref);
- auto replacement = i != remappings.end() ? i->second.clone() : ref.clone();
+ auto replacement = i != remappings.end() ? i->second : ref;
// FIXME: warn about unremapped paths?
if (replacement != ref)
rewrites.insert_or_assign(store->printStorePath(ref), store->printStorePath(replacement));
@@ -79,7 +79,7 @@ struct CmdMakeContentAddressable : StorePathsCommand, MixJSON
ValidPathInfo info(store->makeFixedOutputPath(FileIngestionMethod::Recursive, narHash, path.name(), references, hasSelfReference));
info.references = std::move(references);
- if (hasSelfReference) info.references.insert(info.path.clone());
+ if (hasSelfReference) info.references.insert(info.path);
info.narHash = narHash;
info.narSize = sink.s->size();
info.ca = makeFixedOutputCA(FileIngestionMethod::Recursive, info.narHash);
diff --git a/src/nix/path-info.cc b/src/nix/path-info.cc
index 88d7fffd4..fb7bacc4c 100644
--- a/src/nix/path-info.cc
+++ b/src/nix/path-info.cc
@@ -90,7 +90,7 @@ struct CmdPathInfo : StorePathsCommand, MixJSON
JSONPlaceholder jsonRoot(std::cout);
store->pathInfoToJSON(jsonRoot,
// FIXME: preserve order?
- storePathsToSet(storePaths),
+ StorePathSet(storePaths.begin(), storePaths.end()),
true, showClosureSize, SRI, AllowInvalid);
}
diff --git a/src/nix/run.cc b/src/nix/run.cc
index c9b69aec7..321ee1d11 100644
--- a/src/nix/run.cc
+++ b/src/nix/run.cc
@@ -111,16 +111,16 @@ struct CmdShell : InstallablesCommand, RunCommon, MixEnvironment
std::unordered_set<StorePath> done;
std::queue<StorePath> todo;
- for (auto & path : outPaths) todo.push(path.clone());
+ for (auto & path : outPaths) todo.push(path);
setEnviron();
auto unixPath = tokenizeString<Strings>(getEnv("PATH").value_or(""), ":");
while (!todo.empty()) {
- auto path = todo.front().clone();
+ auto path = todo.front();
todo.pop();
- if (!done.insert(path.clone()).second) continue;
+ if (!done.insert(path).second) continue;
if (true)
unixPath.push_front(store->printStorePath(path) + "/bin");
diff --git a/src/nix/why-depends.cc b/src/nix/why-depends.cc
index a4ee2d971..167c974ee 100644
--- a/src/nix/why-depends.cc
+++ b/src/nix/why-depends.cc
@@ -106,16 +106,16 @@ struct CmdWhyDepends : SourceExprCommand
std::map<StorePath, Node> graph;
for (auto & path : closure)
- graph.emplace(path.clone(), Node { .path = path.clone(), .refs = cloneStorePathSet(store->queryPathInfo(path)->references) });
+ graph.emplace(path, Node { .path = path, .refs = store->queryPathInfo(path)->references });
// Transpose the graph.
for (auto & node : graph)
for (auto & ref : node.second.refs)
- graph.find(ref)->second.rrefs.insert(node.first.clone());
+ graph.find(ref)->second.rrefs.insert(node.first);
/* Run Dijkstra's shortest path algorithm to get the distance
of every path in the closure to 'dependency'. */
- graph.emplace(dependencyPath.clone(), Node { .path = dependencyPath.clone(), .dist = 0 });
+ graph.emplace(dependencyPath, Node { .path = dependencyPath, .dist = 0 });
std::priority_queue<Node *> queue;