@@ -206,21 +206,29 @@ void mp_obj_get_complex(mp_obj_t arg, mp_float_t *real, mp_float_t *imag) {
206206}
207207#endif
208208
209- mp_obj_t * mp_obj_get_array_fixed_n (mp_obj_t o_in , machine_int_t n ) {
210- if (MP_OBJ_IS_TYPE (o_in , & tuple_type ) || MP_OBJ_IS_TYPE (o_in , & list_type )) {
209+ void mp_obj_get_array (mp_obj_t o , uint * len , mp_obj_t * * items ) {
210+ if (MP_OBJ_IS_TYPE (o , & tuple_type )) {
211+ mp_obj_tuple_get (o , len , items );
212+ } else if (MP_OBJ_IS_TYPE (o , & list_type )) {
213+ mp_obj_list_get (o , len , items );
214+ } else {
215+ nlr_jump (mp_obj_new_exception_msg_varg (& mp_type_TypeError , "object '%s' is not a tuple or list" , mp_obj_get_type_str (o )));
216+ }
217+ }
218+
219+ void mp_obj_get_array_fixed_n (mp_obj_t o , uint len , mp_obj_t * * items ) {
220+ if (MP_OBJ_IS_TYPE (o , & tuple_type ) || MP_OBJ_IS_TYPE (o , & list_type )) {
211221 uint seq_len ;
212- mp_obj_t * seq_items ;
213- if (MP_OBJ_IS_TYPE (o_in , & tuple_type )) {
214- mp_obj_tuple_get (o_in , & seq_len , & seq_items );
222+ if (MP_OBJ_IS_TYPE (o , & tuple_type )) {
223+ mp_obj_tuple_get (o , & seq_len , items );
215224 } else {
216- mp_obj_list_get (o_in , & seq_len , & seq_items );
225+ mp_obj_list_get (o , & seq_len , items );
217226 }
218- if (seq_len != n ) {
219- nlr_jump (mp_obj_new_exception_msg_varg (& mp_type_IndexError , "requested length %d but object has length %d" , n , seq_len ));
227+ if (seq_len != len ) {
228+ nlr_jump (mp_obj_new_exception_msg_varg (& mp_type_IndexError , "requested length %d but object has length %d" , len , seq_len ));
220229 }
221- return seq_items ;
222230 } else {
223- nlr_jump (mp_obj_new_exception_msg_varg (& mp_type_TypeError , "object '%s' is not a tuple or list" , mp_obj_get_type_str (o_in )));
231+ nlr_jump (mp_obj_new_exception_msg_varg (& mp_type_TypeError , "object '%s' is not a tuple or list" , mp_obj_get_type_str (o )));
224232 }
225233}
226234
0 commit comments