diff options
| author | Keith Packard <keithp@keithp.com> | 2017-12-19 12:39:20 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-12-19 12:39:20 -0800 | 
| commit | ed1f7b79abc7400a54b35fbf62c9db6855f9129a (patch) | |
| tree | aad2b1c704d4f4a32eb54e46784858ca7cb0bf2f /src/scheme/ao_scheme_builtin.c | |
| parent | 71fb79492cb955af4bd52e79f1fa69d17e084dbc (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.c | 16 | 
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;  		} | 
