diff options
| author | Damien George | 2016-05-04 10:19:08 +0100 |
|---|---|---|
| committer | Damien George | 2016-05-04 10:19:08 +0100 |
| commit | eb54e4d065a7cbc26dc4c8dc2812d1cabdcd0c50 (patch) | |
| tree | 0b7350adfb8d57d686b8c45cc68c87776e090a4b /py | |
| parent | 2c2fc070ecca654b0e9a80e1d9a342d46c6f0cdb (diff) | |
py/obj: Add warning note about get_array return value and GC blocks.
Diffstat (limited to 'py')
| -rw-r--r-- | py/obj.c | 2 | ||||
| -rw-r--r-- | py/obj.h | 4 |
2 files changed, 4 insertions, 2 deletions
@@ -317,6 +317,7 @@ void mp_obj_get_complex(mp_obj_t arg, mp_float_t *real, mp_float_t *imag) { #endif #endif +// note: returned value in *items may point to the interior of a GC block void mp_obj_get_array(mp_obj_t o, mp_uint_t *len, mp_obj_t **items) { if (MP_OBJ_IS_TYPE(o, &mp_type_tuple)) { mp_obj_tuple_get(o, len, items); @@ -333,6 +334,7 @@ void mp_obj_get_array(mp_obj_t o, mp_uint_t *len, mp_obj_t **items) { } } +// note: returned value in *items may point to the interior of a GC block void mp_obj_get_array_fixed_n(mp_obj_t o, mp_uint_t len, mp_obj_t **items) { mp_uint_t seq_len; mp_obj_get_array(o, &seq_len, items); @@ -651,8 +651,8 @@ mp_float_t mp_obj_get_float(mp_obj_t self_in); void mp_obj_get_complex(mp_obj_t self_in, mp_float_t *real, mp_float_t *imag); #endif //qstr mp_obj_get_qstr(mp_obj_t arg); -void mp_obj_get_array(mp_obj_t o, mp_uint_t *len, mp_obj_t **items); -void mp_obj_get_array_fixed_n(mp_obj_t o, mp_uint_t len, mp_obj_t **items); +void mp_obj_get_array(mp_obj_t o, mp_uint_t *len, mp_obj_t **items); // *items may point inside a GC block +void mp_obj_get_array_fixed_n(mp_obj_t o, mp_uint_t len, mp_obj_t **items); // *items may point inside a GC block mp_uint_t mp_get_index(const mp_obj_type_t *type, mp_uint_t len, mp_obj_t index, bool is_slice); mp_obj_t mp_obj_id(mp_obj_t o_in); mp_obj_t mp_obj_len(mp_obj_t o_in); |
