summaryrefslogtreecommitdiff
path: root/src/scheme/ao_scheme_float.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-12-14 23:04:39 -0800
committerKeith Packard <keithp@keithp.com>2017-12-14 23:04:39 -0800
commit32f6877288ea6b7eb1cae9a42fbe8e2c5dbb2f08 (patch)
tree4e23989a62ae144b8cbf1d2fd135ca8a6bd743dc /src/scheme/ao_scheme_float.c
parent2e11cae044cd2c053049effd76df9c5adecb84d7 (diff)
altos/scheme: swap BIGINT and STRING types
This lets BIGINT be a primitive type, allowing it to use all 32 bits for storage. This does make strings another byte longer, and also slightly harder to deal with. It's a trade off. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/scheme/ao_scheme_float.c')
-rw-r--r--src/scheme/ao_scheme_float.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/scheme/ao_scheme_float.c b/src/scheme/ao_scheme_float.c
index c026c6fb..b75289d7 100644
--- a/src/scheme/ao_scheme_float.c
+++ b/src/scheme/ao_scheme_float.c
@@ -69,10 +69,10 @@ ao_scheme_poly_number(ao_poly p)
switch (ao_scheme_poly_base_type(p)) {
case AO_SCHEME_INT:
return ao_scheme_poly_int(p);
+ case AO_SCHEME_BIGINT:
+ return ao_scheme_poly_bigint(p)->value;
case AO_SCHEME_OTHER:
switch (ao_scheme_other_type(ao_scheme_poly_other(p))) {
- case AO_SCHEME_BIGINT:
- return ao_scheme_bigint_int(ao_scheme_poly_bigint(p)->value);
case AO_SCHEME_FLOAT:
return ao_scheme_poly_float(p)->value;
}