diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-10-12 10:10:39 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-10-12 10:13:51 +0300 |
commit | 91fc075a33a6f0bf8e1a07b797f6fd01207a5e17 (patch) | |
tree | 436209bc10ce78ee1196797e012823b5aa3b917a /py | |
parent | 3aa7dd23c9206b983f0004ec63eb6be913f7332a (diff) | |
download | micropython-91fc075a33a6f0bf8e1a07b797f6fd01207a5e17.tar.gz micropython-91fc075a33a6f0bf8e1a07b797f6fd01207a5e17.zip |
py/objarray: Allow to create array of void pointers, as extension to CPython.
Using 'P' format specifier (matches struct module). This is another shortcut
for FFI, just as previously introduced "array of objects" ('O').
Diffstat (limited to 'py')
-rw-r--r-- | py/binary.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/py/binary.c b/py/binary.c index d8f865ebe5..71ef3f04d5 100644 --- a/py/binary.c +++ b/py/binary.c @@ -145,6 +145,9 @@ mp_obj_t mp_binary_get_val_array(char typecode, void *p, mp_uint_t index) { // Extension to CPython: array of objects case 'O': return ((mp_obj_t*)p)[index]; + // Extension to CPython: array of pointers + case 'P': + return mp_obj_new_int((mp_int_t)((void**)p)[index]); } return MP_OBJ_NEW_SMALL_INT(val); } @@ -369,5 +372,8 @@ void mp_binary_set_val_array_from_int(char typecode, void *p, mp_uint_t index, m ((double*)p)[index] = val; break; #endif + // Extension to CPython: array of pointers + case 'P': + ((void**)p)[index] = (void*)val; } } |