mirror of
https://github.com/NixOS/nix.git
synced 2025-11-08 19:46:02 +01:00
Use ref<LockedFlake> where non-null
This commit is contained in:
parent
0387b7d6db
commit
42c9cbf9ca
6 changed files with 10 additions and 11 deletions
|
|
@ -69,7 +69,7 @@ struct InstallableFlake : InstallableValue
|
|||
*/
|
||||
std::vector<ref<eval_cache::AttrCursor>> getCursors(EvalState & state) override;
|
||||
|
||||
std::shared_ptr<flake::LockedFlake> getLockedFlake() const;
|
||||
ref<flake::LockedFlake> getLockedFlake() const;
|
||||
|
||||
FlakeRef nixpkgsFlakeRef() const;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -185,16 +185,16 @@ std::vector<ref<eval_cache::AttrCursor>> InstallableFlake::getCursors(EvalState
|
|||
return res;
|
||||
}
|
||||
|
||||
std::shared_ptr<flake::LockedFlake> InstallableFlake::getLockedFlake() const
|
||||
ref<flake::LockedFlake> InstallableFlake::getLockedFlake() const
|
||||
{
|
||||
if (!_lockedFlake) {
|
||||
flake::LockFlags lockFlagsApplyConfig = lockFlags;
|
||||
// FIXME why this side effect?
|
||||
lockFlagsApplyConfig.applyNixConfig = true;
|
||||
_lockedFlake =
|
||||
std::make_shared<flake::LockedFlake>(lockFlake(flakeSettings, *state, flakeRef, lockFlagsApplyConfig));
|
||||
_lockedFlake = make_ref<flake::LockedFlake>(lockFlake(flakeSettings, *state, flakeRef, lockFlagsApplyConfig));
|
||||
}
|
||||
return _lockedFlake;
|
||||
// _lockedFlake is now non-null but still just a shared_ptr
|
||||
return ref<flake::LockedFlake>(_lockedFlake);
|
||||
}
|
||||
|
||||
FlakeRef InstallableFlake::nixpkgsFlakeRef() const
|
||||
|
|
|
|||
|
|
@ -342,8 +342,7 @@ void completeFlakeRefWithFragment(
|
|||
parseFlakeRef(fetchSettings, expandTilde(flakeRefS), std::filesystem::current_path().string());
|
||||
|
||||
auto evalCache = openEvalCache(
|
||||
*evalState,
|
||||
std::make_shared<flake::LockedFlake>(lockFlake(flakeSettings, *evalState, flakeRef, lockFlags)));
|
||||
*evalState, make_ref<flake::LockedFlake>(lockFlake(flakeSettings, *evalState, flakeRef, lockFlags)));
|
||||
|
||||
auto root = evalCache->getRoot();
|
||||
|
||||
|
|
|
|||
|
|
@ -954,7 +954,7 @@ std::optional<Fingerprint> LockedFlake::getFingerprint(ref<Store> store, const f
|
|||
|
||||
Flake::~Flake() {}
|
||||
|
||||
ref<eval_cache::EvalCache> openEvalCache(EvalState & state, std::shared_ptr<LockedFlake> lockedFlake)
|
||||
ref<eval_cache::EvalCache> openEvalCache(EvalState & state, ref<LockedFlake> lockedFlake)
|
||||
{
|
||||
auto fingerprint = state.settings.useEvalCache && state.settings.pureEval
|
||||
? lockedFlake->getFingerprint(state.store, state.fetchSettings)
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ void callFlake(EvalState & state, const LockedFlake & lockedFlake, Value & v);
|
|||
/**
|
||||
* Open an evaluation cache for a flake.
|
||||
*/
|
||||
ref<eval_cache::EvalCache> openEvalCache(EvalState & state, std::shared_ptr<LockedFlake> lockedFlake);
|
||||
ref<eval_cache::EvalCache> openEvalCache(EvalState & state, ref<LockedFlake> lockedFlake);
|
||||
|
||||
} // namespace flake
|
||||
|
||||
|
|
|
|||
|
|
@ -1155,7 +1155,7 @@ struct CmdFlakeShow : FlakeCommand, MixJSON
|
|||
evalSettings.enableImportFromDerivation.setDefault(false);
|
||||
|
||||
auto state = getEvalState();
|
||||
auto flake = std::make_shared<LockedFlake>(lockFlake());
|
||||
auto flake = make_ref<LockedFlake>(lockFlake());
|
||||
auto localSystem = std::string(settings.thisSystem.get());
|
||||
|
||||
std::function<bool(eval_cache::AttrCursor & visitor, const std::vector<Symbol> & attrPath, const Symbol & attr)>
|
||||
|
|
@ -1443,7 +1443,7 @@ struct CmdFlakeShow : FlakeCommand, MixJSON
|
|||
return j;
|
||||
};
|
||||
|
||||
auto cache = openEvalCache(*state, flake);
|
||||
auto cache = openEvalCache(*state, ref<flake::LockedFlake>(flake));
|
||||
|
||||
auto j = visit(*cache->getRoot(), {}, fmt(ANSI_BOLD "%s" ANSI_NORMAL, flake->flake.lockedRef), "");
|
||||
if (json)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue