diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-10-23 18:18:07 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-10-23 18:18:07 +0000 |
commit | 3f66cfb96b6f4bbddc8bf3b15e364fd522e028bc (patch) | |
tree | e2a769029fbbcaced52630fb6f9432218418d9c4 /src/libexpr/eval.cc | |
parent | 4dee289550d11950d6d17482484061a4792b2eef (diff) |
* Remove allocValues().
Diffstat (limited to 'src/libexpr/eval.cc')
-rw-r--r-- | src/libexpr/eval.cc | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 3f2371d79..faf18cb7f 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -282,13 +282,6 @@ Value * EvalState::allocValue() } -Value * EvalState::allocValues(unsigned int count) -{ - nrValues += count; - return (Value *) GC_MALLOC(count * sizeof(Value)); -} - - Env & EvalState::allocEnv(unsigned int size) { nrEnvs++; @@ -542,11 +535,8 @@ void ExprLet::eval(EvalState & state, Env & env, Value & v) void ExprList::eval(EvalState & state, Env & env, Value & v) { state.mkList(v, elems.size()); - Value * vs = state.allocValues(v.list.length); - for (unsigned int n = 0; n < v.list.length; ++n) { - v.list.elems[n] = &vs[n]; - mkThunk(vs[n], env, elems[n]); - } + for (unsigned int n = 0; n < v.list.length; ++n) + mkThunk(*(v.list.elems[n] = state.allocValue()), env, elems[n]); } @@ -630,12 +620,10 @@ void EvalState::callFunction(Value & fun, Value & arg, Value & v) throw; } } else { - Value * v2 = allocValues(2); - v2[0] = fun; - v2[1] = arg; v.type = tPrimOpApp; - v.primOpApp.left = &v2[0]; - v.primOpApp.right = &v2[1]; + v.primOpApp.left = allocValue(); + *v.primOpApp.left = fun; + v.primOpApp.right = &arg; v.primOpApp.argsLeft = argsLeft - 1; } return; |