@@ -192,37 +192,6 @@ STATIC mp_obj_t dict_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
192
192
}
193
193
}
194
194
195
- /******************************************************************************/
196
- /* dict iterator */
197
-
198
- typedef struct _mp_obj_dict_it_t {
199
- mp_obj_base_t base ;
200
- mp_fun_1_t iternext ;
201
- mp_obj_t dict ;
202
- size_t cur ;
203
- } mp_obj_dict_it_t ;
204
-
205
- STATIC mp_obj_t dict_it_iternext (mp_obj_t self_in ) {
206
- mp_obj_dict_it_t * self = MP_OBJ_TO_PTR (self_in );
207
- mp_map_elem_t * next = dict_iter_next (MP_OBJ_TO_PTR (self -> dict ), & self -> cur );
208
-
209
- if (next == NULL ) {
210
- return MP_OBJ_STOP_ITERATION ;
211
- } else {
212
- return next -> key ;
213
- }
214
- }
215
-
216
- STATIC mp_obj_t dict_getiter (mp_obj_t self_in , mp_obj_iter_buf_t * iter_buf ) {
217
- assert (sizeof (mp_obj_dict_it_t ) <= sizeof (mp_obj_iter_buf_t ));
218
- mp_obj_dict_it_t * o = (mp_obj_dict_it_t * )iter_buf ;
219
- o -> base .type = & mp_type_polymorph_iter ;
220
- o -> iternext = dict_it_iternext ;
221
- o -> dict = self_in ;
222
- o -> cur = 0 ;
223
- return MP_OBJ_FROM_PTR (o );
224
- }
225
-
226
195
/******************************************************************************/
227
196
/* dict methods */
228
197
@@ -527,6 +496,20 @@ STATIC mp_obj_t dict_values(mp_obj_t self_in) {
527
496
}
528
497
STATIC MP_DEFINE_CONST_FUN_OBJ_1 (dict_values_obj , dict_values );
529
498
499
+ /******************************************************************************/
500
+ /* dict iterator */
501
+
502
+ STATIC mp_obj_t dict_getiter (mp_obj_t self_in , mp_obj_iter_buf_t * iter_buf ) {
503
+ assert (sizeof (mp_obj_dict_view_it_t ) <= sizeof (mp_obj_iter_buf_t ));
504
+ mp_check_self (MP_OBJ_IS_DICT_TYPE (self_in ));
505
+ mp_obj_dict_view_it_t * o = (mp_obj_dict_view_it_t * )iter_buf ;
506
+ o -> base .type = & dict_view_it_type ;
507
+ o -> kind = MP_DICT_VIEW_KEYS ;
508
+ o -> dict = self_in ;
509
+ o -> cur = 0 ;
510
+ return MP_OBJ_FROM_PTR (o );
511
+ }
512
+
530
513
/******************************************************************************/
531
514
/* dict constructors & public C API */
532
515
0 commit comments