about summary refs log tree commit diff
path: root/src/libstore/misc.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-02-22T12·44+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-02-22T12·44+0000
commitc4d388add4942f6f99a8df12f4e49149005047e2 (patch)
tree910f35306dbf6d78898d6c3968bcc039db187655 /src/libstore/misc.cc
parent103cfee056cbc8f002929fd5958e305c1a75fe45 (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.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc
index 2d7d13a0e7..f79cb11cc2 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)