diff options
author | Damien George <damien.p.george@gmail.com> | 2014-11-21 18:16:25 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-11-21 18:16:25 +0000 |
commit | c9f8f653adbff865d5cebdf0e46dc22680cebce4 (patch) | |
tree | 92c9c05007acedc724a7b0213e0630998a7654c1 /py/binary.c | |
parent | 9d1ca65b59614c38674d0c8c4dc2e8da9618df69 (diff) |
py: Add support for float/double arrays in array module.
Addresses issue #981.
Diffstat (limited to 'py/binary.c')
-rw-r--r-- | py/binary.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/py/binary.c b/py/binary.c index fed69f9d1..46a4eb694 100644 --- a/py/binary.c +++ b/py/binary.c @@ -61,6 +61,10 @@ int mp_binary_get_size(char struct_type, char val_type, mp_uint_t *palign) { size = 8; break; case 'P': case 'O': case 'S': size = sizeof(void*); break; + case 'f': + size = sizeof(float); break; + case 'd': + size = sizeof(double); break; } break; case '@': { @@ -90,6 +94,12 @@ int mp_binary_get_size(char struct_type, char val_type, mp_uint_t *palign) { case 'P': case 'O': case 'S': align = alignof(void*); size = sizeof(void*); break; + case 'f': + align = alignof(float); + size = sizeof(float); break; + case 'd': + align = alignof(double); + size = sizeof(double); break; } } } @@ -252,10 +262,10 @@ void mp_binary_set_val_array(char typecode, void *p, mp_uint_t index, mp_obj_t v switch (typecode) { #if MICROPY_PY_BUILTINS_FLOAT case 'f': - ((float*)p)[index] = mp_obj_float_get(val_in); + ((float*)p)[index] = mp_obj_get_float(val_in); break; case 'd': - ((double*)p)[index] = mp_obj_float_get(val_in); + ((double*)p)[index] = mp_obj_get_float(val_in); break; #endif default: |