diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-02-22T12·44+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-02-22T12·44+0000 |
commit | c4d388add4942f6f99a8df12f4e49149005047e2 (patch) | |
tree | 910f35306dbf6d78898d6c3968bcc039db187655 /src/libstore/misc.cc | |
parent | 103cfee056cbc8f002929fd5958e305c1a75fe45 (diff) |
* Get derivation outputs from the database instead of the .drv file,
which requires more I/O.
Diffstat (limited to 'src/libstore/misc.cc')
-rw-r--r-- | src/libstore/misc.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc index 2d7d13a0e7b4..f79cb11cc20b 100644 --- a/src/libstore/misc.cc +++ b/src/libstore/misc.cc @@ -31,10 +31,10 @@ void computeFSClosure(const Path & storePath, store->queryReferences(storePath, references); if (includeOutputs && isDerivation(storePath)) { - Derivation drv = derivationFromPath(storePath); - foreach (DerivationOutputs::iterator, i, drv.outputs) - if (store->isValidPath(i->second.path)) - computeFSClosure(i->second.path, paths, flipDirection, true); + PathSet outputs = store->queryDerivationOutputs(storePath); + foreach (PathSet::iterator, i, outputs) + if (store->isValidPath(*i)) + computeFSClosure(*i, paths, flipDirection, true); } foreach (PathSet::iterator, i, references) |