diff --git a/src/nix-eval-jobs.cc b/src/nix-eval-jobs.cc index 6eb275151..3f43d84f2 100644 --- a/src/nix-eval-jobs.cc +++ b/src/nix-eval-jobs.cc @@ -264,8 +264,6 @@ static void worker( if (auto drvInfo = getDerivation(state, *v, false)) { auto drv = Drv(state, *drvInfo); - auto localStore = state.store.dynamic_pointer_cast(); - auto storePath = localStore->parseStorePath(drv.drvPath); reply = drv; reply["attr"] = attrPath; @@ -275,8 +273,11 @@ static void worker( done. */ if (myArgs.gcRootsDir != "") { Path root = myArgs.gcRootsDir + "/" + std::string(baseNameOf(drv.drvPath)); - if (!pathExists(root)) + if (!pathExists(root)) { + auto localStore = state.store.dynamic_pointer_cast(); + auto storePath = localStore->parseStorePath(drv.drvPath); localStore->addPermRoot(storePath, root); + } } }