kopia lustrzana https://github.com/micropython/micropython
py/obj: Add warning note about get_array return value and GC blocks.
rodzic
2c2fc070ec
commit
eb54e4d065
2
py/obj.c
2
py/obj.c
|
@ -317,6 +317,7 @@ void mp_obj_get_complex(mp_obj_t arg, mp_float_t *real, mp_float_t *imag) {
|
||||||
#endif
|
#endif
|
||||||
#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) {
|
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)) {
|
if (MP_OBJ_IS_TYPE(o, &mp_type_tuple)) {
|
||||||
mp_obj_tuple_get(o, len, items);
|
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) {
|
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_uint_t seq_len;
|
||||||
mp_obj_get_array(o, &seq_len, items);
|
mp_obj_get_array(o, &seq_len, items);
|
||||||
|
|
4
py/obj.h
4
py/obj.h
|
@ -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);
|
void mp_obj_get_complex(mp_obj_t self_in, mp_float_t *real, mp_float_t *imag);
|
||||||
#endif
|
#endif
|
||||||
//qstr mp_obj_get_qstr(mp_obj_t arg);
|
//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(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);
|
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_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_id(mp_obj_t o_in);
|
||||||
mp_obj_t mp_obj_len(mp_obj_t o_in);
|
mp_obj_t mp_obj_len(mp_obj_t o_in);
|
||||||
|
|
Ładowanie…
Reference in New Issue