diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-04-15 00:37:36 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-04-15 00:37:36 +0000 |
commit | 04c4bd3624b094043ff0f2410c1e376a51f457f7 (patch) | |
tree | 0ff3c39628ceeb26af33f2b461d84a13db9aa561 /src/libexpr/attr-path.cc | |
parent | e41b5828db0c154e4a3f0ed6299a987fde5bc03f (diff) |
* Store lists as lists of pointers to values rather than as lists of
values. This improves sharing and gives another speed up.
Evaluation of the NixOS system attribute is now almost 7 times
faster than the old evaluator.
Diffstat (limited to 'src/libexpr/attr-path.cc')
-rw-r--r-- | src/libexpr/attr-path.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libexpr/attr-path.cc b/src/libexpr/attr-path.cc index b53837781..769acb6b8 100644 --- a/src/libexpr/attr-path.cc +++ b/src/libexpr/attr-path.cc @@ -61,7 +61,7 @@ void findAlongAttrPath(EvalState & state, const string & attrPath, if (attrIndex >= v.list.length) throw Error(format("list index %1% in selection path `%2%' is out of range") % attrIndex % curPath); - v = v.list.elems[attrIndex]; + v = *v.list.elems[attrIndex]; } } |