aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/local-store.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index 7cd84d03d..41e1c37a0 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -783,15 +783,11 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet & paths)
if (!settings.useSubstitutes) return PathSet();
PathSet res;
for (auto & sub : getDefaultSubstituters()) {
+ if (res.size() == paths.size()) break;
if (sub->storeDir != storeDir) continue;
if (!sub->wantMassQuery()) continue;
- for (auto & path : paths) {
- if (res.count(path)) continue;
- debug(format("checking substituter ā€˜%sā€™ for path ā€˜%sā€™")
- % sub->getUri() % path);
- if (sub->isValidPath(path))
- res.insert(path);
- }
+ for (auto path : sub->queryValidPaths(paths))
+ res.insert(path);
}
return res;
}