Commit f200c30d authored by Paul Sokolovsky's avatar Paul Sokolovsky
Browse files

modffi: Support float types.

parent 8865b22b
...@@ -61,6 +61,8 @@ STATIC ffi_type *char2ffi_type(char c) ...@@ -61,6 +61,8 @@ STATIC ffi_type *char2ffi_type(char c)
case 'I': return &ffi_type_uint; case 'I': return &ffi_type_uint;
case 'l': return &ffi_type_slong; case 'l': return &ffi_type_slong;
case 'L': return &ffi_type_ulong; case 'L': return &ffi_type_ulong;
case 'f': return &ffi_type_float;
case 'd': return &ffi_type_double;
case 'p': case 'p':
case 's': return &ffi_type_pointer; case 's': return &ffi_type_pointer;
case 'v': return &ffi_type_void; case 'v': return &ffi_type_void;
...@@ -92,6 +94,14 @@ STATIC mp_obj_t return_ffi_value(ffi_arg val, char type) ...@@ -92,6 +94,14 @@ STATIC mp_obj_t return_ffi_value(ffi_arg val, char type)
} }
case 'v': case 'v':
return mp_const_none; return mp_const_none;
case 'f': {
float *p = (float*)&val;
return mp_obj_new_float(*p);
}
case 'd': {
double *p = (double*)&val;
return mp_obj_new_float(*p);
}
default: default:
return mp_obj_new_int(val); return mp_obj_new_int(val);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment