diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-12-30 21:47:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-30 21:47:21 +0100 |
commit | 368a972a38f458b90d4db3c2959b214c3732f720 (patch) | |
tree | 3cef0a139dbe03ae7ded46241727e225d1c0de38 | |
parent | bff706e27cea1d6b32ec0bdb88b186d1401e5fa9 (diff) | |
parent | d27eb0ef573b4739967119448779da4a8b2a2cbf (diff) |
Merge pull request #4411 from corngood/env-assert-fix
Fix insufficent attribute capacity in user profile
-rw-r--r-- | src/nix-env/user-env.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nix-env/user-env.cc b/src/nix-env/user-env.cc index 87387e794..168ac492b 100644 --- a/src/nix-env/user-env.cc +++ b/src/nix-env/user-env.cc @@ -53,10 +53,12 @@ bool createUserEnv(EvalState & state, DrvInfos & elems, output paths, and optionally the derivation path, as well as the meta attributes. */ Path drvPath = keepDerivations ? i.queryDrvPath() : ""; + DrvInfo::Outputs outputs = i.queryOutputs(true); + StringSet metaNames = i.queryMetaNames(); Value & v(*state.allocValue()); manifest.listElems()[n++] = &v; - state.mkAttrs(v, 16); + state.mkAttrs(v, 7 + outputs.size()); mkString(*state.allocAttr(v, state.sType), "derivation"); mkString(*state.allocAttr(v, state.sName), i.queryName()); @@ -68,7 +70,6 @@ bool createUserEnv(EvalState & state, DrvInfos & elems, mkString(*state.allocAttr(v, state.sDrvPath), i.queryDrvPath()); // Copy each output meant for installation. - DrvInfo::Outputs outputs = i.queryOutputs(true); Value & vOutputs = *state.allocAttr(v, state.sOutputs); state.mkList(vOutputs, outputs.size()); unsigned int m = 0; @@ -88,8 +89,7 @@ bool createUserEnv(EvalState & state, DrvInfos & elems, // Copy the meta attributes. Value & vMeta = *state.allocAttr(v, state.sMeta); - state.mkAttrs(vMeta, 16); - StringSet metaNames = i.queryMetaNames(); + state.mkAttrs(vMeta, metaNames.size()); for (auto & j : metaNames) { Value * v = i.queryMeta(j); if (!v) continue; |