aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-07-23 16:56:58 +0200
committerGitHub <noreply@github.com>2020-07-23 16:56:58 +0200
commita7b8f799380da911908cf20d95c9cd644e25ab10 (patch)
tree8da743d14bd0101c1f660e7b493fc9a794303df8
parent4bfba1305ed004c7b23b4e288efa707807cf2ac3 (diff)
parent2274f63453dc0b5c76a50ae34d6f7c8ef329f411 (diff)
Merge pull request #3855 from obsidiansystems/delete-find-output
Get rid of `basicDerivation::findOutput`
-rw-r--r--src/libstore/derivations.cc8
-rw-r--r--src/libstore/derivations.hh4
-rw-r--r--src/nix-env/nix-env.cc3
3 files changed, 2 insertions, 13 deletions
diff --git a/src/libstore/derivations.cc b/src/libstore/derivations.cc
index f325e511a..870901421 100644
--- a/src/libstore/derivations.cc
+++ b/src/libstore/derivations.cc
@@ -7,14 +7,6 @@
namespace nix {
-const StorePath & BasicDerivation::findOutput(const string & id) const
-{
- auto i = outputs.find(id);
- if (i == outputs.end())
- throw Error("derivation has no output '%s'", id);
- return i->second.path;
-}
-
bool BasicDerivation::isBuiltin() const
{
diff --git a/src/libstore/derivations.hh b/src/libstore/derivations.hh
index 68c53c1ff..00cf1bb08 100644
--- a/src/libstore/derivations.hh
+++ b/src/libstore/derivations.hh
@@ -39,10 +39,6 @@ struct BasicDerivation
BasicDerivation() { }
virtual ~BasicDerivation() { };
- /* Return the path corresponding to the output identifier `id' in
- the given derivation. */
- const StorePath & findOutput(const std::string & id) const;
-
bool isBuiltin() const;
/* Return true iff this is a fixed-output derivation. */
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index 5795c2c09..ddd036070 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -381,7 +381,8 @@ static void queryInstSources(EvalState & state,
if (path.isDerivation()) {
elem.setDrvPath(state.store->printStorePath(path));
- elem.setOutPath(state.store->printStorePath(state.store->derivationFromPath(path).findOutput("out")));
+ auto outputs = state.store->queryDerivationOutputMap(path);
+ elem.setOutPath(state.store->printStorePath(outputs.at("out")));
if (name.size() >= drvExtension.size() &&
string(name, name.size() - drvExtension.size()) == drvExtension)
name = string(name, 0, name.size() - drvExtension.size());