aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-13 15:02:09 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-13 15:02:09 -0400
commite5c589d271c62f57cd2e7eb7d9841f67d8845ff4 (patch)
tree216582f50b4609ea0bd7f6cdc212a15c24e9e1b6
parent3e89ef597ce00dbf82a937aad9efab3c9c7b6dcf (diff)
Don't allocate empty lists
This saves about 4 MB when evaluating a NixOS system configuration.
-rw-r--r--src/libexpr/eval.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 517a1151e..cb7c22e29 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -348,7 +348,7 @@ void EvalState::mkList(Value & v, unsigned int length)
{
v.type = tList;
v.list.length = length;
- v.list.elems = (Value * *) GC_MALLOC(length * sizeof(Value *));
+ v.list.elems = length ? (Value * *) GC_MALLOC(length * sizeof(Value *)) : 0;
nrListElems += length;
}