aboutsummaryrefslogtreecommitdiff
path: root/src/nix/installables.cc
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2020-06-17 03:39:39 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2020-06-17 03:39:39 +0000
commit49308ef0397a3da04ae1822188b1fedc70a33243 (patch)
tree96bb06a039bcf472b1f3796bcb4b534df3f732ad /src/nix/installables.cc
parent74b251b2f3d6414de051c8523011c0ee3c5ea154 (diff)
parent29542865cee37ab22efe1bd142900b69f6c59f0d (diff)
Merge remote-tracking branch 'upstream/master' into ca-drv
Diffstat (limited to 'src/nix/installables.cc')
-rw-r--r--src/nix/installables.cc22
1 files changed, 11 insertions, 11 deletions
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;