summaryrefslogtreecommitdiff
path: root/src/scheme/ao_scheme_builtin.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-12-19 12:39:20 -0800
committerKeith Packard <keithp@keithp.com>2017-12-19 12:39:20 -0800
commited1f7b79abc7400a54b35fbf62c9db6855f9129a (patch)
treeaad2b1c704d4f4a32eb54e46784858ca7cb0bf2f /src/scheme/ao_scheme_builtin.c
parent71fb79492cb955af4bd52e79f1fa69d17e084dbc (diff)
altos/scheme: Replace per-type indexed stash with poly stash heap
Instead of having a random set of stash arrays with explicit indices used by callers, just have a general heap. Less error prone, and less code. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/scheme/ao_scheme_builtin.c')
-rw-r--r--src/scheme/ao_scheme_builtin.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/scheme/ao_scheme_builtin.c b/src/scheme/ao_scheme_builtin.c
index 84382434..81fd9010 100644
--- a/src/scheme/ao_scheme_builtin.c
+++ b/src/scheme/ao_scheme_builtin.c
@@ -321,7 +321,7 @@ ao_scheme_math(struct ao_scheme_cons *orig_cons, enum ao_scheme_builtin_id op)
if (cons == orig_cons) {
ret = car;
- ao_scheme_cons_stash(0, cons);
+ ao_scheme_cons_stash(cons);
if (cons->cdr == AO_SCHEME_NIL) {
switch (op) {
case builtin_minus:
@@ -349,7 +349,7 @@ ao_scheme_math(struct ao_scheme_cons *orig_cons, enum ao_scheme_builtin_id op)
break;
}
}
- cons = ao_scheme_cons_fetch(0);
+ cons = ao_scheme_cons_fetch();
} else if (ao_scheme_integer_typep(rt) && ao_scheme_integer_typep(ct)) {
int32_t r = ao_scheme_poly_integer(ret, NULL);
int32_t c = ao_scheme_poly_integer(car, NULL);
@@ -413,9 +413,9 @@ ao_scheme_math(struct ao_scheme_cons *orig_cons, enum ao_scheme_builtin_id op)
default:
break;
}
- ao_scheme_cons_stash(0, cons);
+ ao_scheme_cons_stash(cons);
ret = ao_scheme_integer_poly(r);
- cons = ao_scheme_cons_fetch(0);
+ cons = ao_scheme_cons_fetch();
#ifdef AO_SCHEME_FEATURE_FLOAT
} else if (ao_scheme_number_typep(rt) && ao_scheme_number_typep(ct)) {
float r, c;
@@ -442,16 +442,16 @@ ao_scheme_math(struct ao_scheme_cons *orig_cons, enum ao_scheme_builtin_id op)
default:
break;
}
- ao_scheme_cons_stash(0, cons);
+ ao_scheme_cons_stash(cons);
ret = ao_scheme_float_get(r);
- cons = ao_scheme_cons_fetch(0);
+ cons = ao_scheme_cons_fetch();
#endif
}
else if (rt == AO_SCHEME_STRING && ct == AO_SCHEME_STRING && op == builtin_plus) {
- ao_scheme_cons_stash(0, cons);
+ ao_scheme_cons_stash(cons);
ret = ao_scheme_string_poly(ao_scheme_string_cat(ao_scheme_poly_string(ret),
ao_scheme_poly_string(car)));
- cons = ao_scheme_cons_fetch(0);
+ cons = ao_scheme_cons_fetch();
if (!ret)
return ret;
}