summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-04-03 11:20:41 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-04-03 11:20:41 -0700
commit1ce504148e960fa8fdd3701977786b99a7437f57 (patch)
tree30414fdc38771f8aac55cb880d437f8d1db5a87d /eval.c
parent06ced4e18fd69399e7419a59dbe477e9a92c23e1 (diff)
downloadtxr-1ce504148e960fa8fdd3701977786b99a7437f57.tar.gz
txr-1ce504148e960fa8fdd3701977786b99a7437f57.tar.bz2
txr-1ce504148e960fa8fdd3701977786b99a7437f57.zip
* eval.c (op_modplace): push replaced with mpush (mutating push).
* gc.c (gc_push): New function. * gc.h (gc_push): Declared. * hash.c (pushhash): Use mpush. * lib.c (push): Reverted to unsafe operation. TODO comment replaced with warning. (lazy_flatten_scan): push occurence commented as safe. (lazy_stream_func): Unsafe push replaced with mpush. * lib.h (mpush): New macro.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 7ff81ae4..4a44c194 100644
--- a/eval.c
+++ b/eval.c
@@ -983,7 +983,7 @@ static val op_modplace(val form, val env)
val inc = or2(eval(newform, env, form), one);
return set(*loc, minus(*loc, inc));
} else if (op == push_s) {
- return push(newval, loc);
+ return mpush(newval, *loc);
} else if (op == pop_s) {
if (third_arg_p)
eval_error(form, lit("~a: superfluous argument"), op, place, nao);