diff options
author | Damien George <damien.p.george@gmail.com> | 2015-04-28 19:40:34 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-04-28 19:40:34 +0100 |
commit | 6bbbb1ab41a5319b0558b2f0131b3f746f0cb5b9 (patch) | |
tree | 2ada905d837725acff9dd64a9bc611af84eed7bf /unix | |
parent | f1ed8c8a2e82dd4026d4a17a8356da314a91711e (diff) | |
download | micropython-6bbbb1ab41a5319b0558b2f0131b3f746f0cb5b9.tar.gz micropython-6bbbb1ab41a5319b0558b2f0131b3f746f0cb5b9.zip |
unix/modffi: Support passing float/double args.
Diffstat (limited to 'unix')
-rw-r--r-- | unix/modffi.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/unix/modffi.c b/unix/modffi.c index 9e81b1e334..e0d86ad1d1 100644 --- a/unix/modffi.c +++ b/unix/modffi.c @@ -356,6 +356,14 @@ STATIC mp_obj_t ffifunc_call(mp_obj_t self_in, mp_uint_t n_args, mp_uint_t n_kw, mp_obj_t a = args[i]; if (*argtype == 'O') { values[i] = (ffi_arg)a; + #if MICROPY_PY_BUILTINS_FLOAT + } else if (*argtype == 'f') { + float *p = (float*)&values[i]; + *p = mp_obj_get_float(a); + } else if (*argtype == 'd') { + double *p = (double*)&values[i]; + *p = mp_obj_get_float(a); + #endif } else if (a == mp_const_none) { values[i] = 0; } else if (MP_OBJ_IS_INT(a)) { |