mirror of
https://github.com/NixOS/nix
synced 2025-06-26 07:31:15 +02:00
Memoise checkSourcePath()
This prevents hydra-eval-jobs from statting the same files over and over again.
This commit is contained in:
parent
9064dd2f4d
commit
9fd7cf98db
2 changed files with 11 additions and 1 deletions
|
@ -352,6 +352,10 @@ Path EvalState::checkSourcePath(const Path & path_)
|
|||
{
|
||||
if (!allowedPaths) return path_;
|
||||
|
||||
auto i = resolvedPaths.find(path_);
|
||||
if (i != resolvedPaths.end())
|
||||
return i->second;
|
||||
|
||||
bool found = false;
|
||||
|
||||
for (auto & i : *allowedPaths) {
|
||||
|
@ -369,8 +373,10 @@ Path EvalState::checkSourcePath(const Path & path_)
|
|||
Path path = canonPath(path_, true);
|
||||
|
||||
for (auto & i : *allowedPaths) {
|
||||
if (isDirOrInDir(path, i))
|
||||
if (isDirOrInDir(path, i)) {
|
||||
resolvedPaths[path_] = path;
|
||||
return path;
|
||||
}
|
||||
}
|
||||
|
||||
throw RestrictedPathError("access to path '%1%' is forbidden in restricted mode", path);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue