@@ -50,7 +50,7 @@ static mp_obj_t dict_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
5050 case RT_BINARY_OP_SUBSCR :
5151 {
5252 // dict load
53- mp_map_elem_t * elem = mp_map_lookup_helper (& o -> map , rhs_in , false, false );
53+ mp_map_elem_t * elem = mp_map_lookup (& o -> map , rhs_in , MP_MAP_LOOKUP );
5454 if (elem == NULL ) {
5555 nlr_jump (mp_obj_new_exception_msg (MP_QSTR_KeyError , "<value>" ));
5656 } else {
@@ -139,12 +139,12 @@ static mp_obj_t dict_copy(mp_obj_t self_in) {
139139}
140140static MP_DEFINE_CONST_FUN_OBJ_1 (dict_copy_obj , dict_copy ) ;
141141
142- static mp_obj_t dict_get_helper (mp_map_t * self , mp_obj_t key , mp_obj_t deflt , bool pop , bool set ) {
143- mp_map_elem_t * elem = mp_map_lookup_helper (self , key , set , pop );
142+ static mp_obj_t dict_get_helper (mp_map_t * self , mp_obj_t key , mp_obj_t deflt , mp_map_lookup_kind_t lookup_kind ) {
143+ mp_map_elem_t * elem = mp_map_lookup (self , key , lookup_kind );
144144 mp_obj_t value ;
145145 if (elem == NULL || elem -> value == NULL ) {
146146 if (deflt == NULL ) {
147- if (pop ) {
147+ if (lookup_kind == MP_MAP_LOOKUP_REMOVE_IF_FOUND ) {
148148 nlr_jump (mp_obj_new_exception_msg (MP_QSTR_KeyError , "<value>" ));
149149 } else {
150150 value = mp_const_none ;
@@ -154,12 +154,12 @@ static mp_obj_t dict_get_helper(mp_map_t *self, mp_obj_t key, mp_obj_t deflt, bo
154154 }
155155 } else {
156156 value = elem -> value ;
157- if (pop ) {
158- /* catch the leak (from mp_map_lookup_helper) */
157+ if (lookup_kind == MP_MAP_LOOKUP_REMOVE_IF_FOUND ) {
158+ // catch the leak (from mp_map_lookup)
159159 m_free (elem , sizeof (mp_map_elem_t ));
160160 }
161161 }
162- if (set ) {
162+ if (lookup_kind == MP_MAP_LOOKUP_ADD_IF_NOT_FOUND ) {
163163 elem -> value = value ;
164164 }
165165 return value ;
@@ -172,7 +172,7 @@ static mp_obj_t dict_get(int n_args, const mp_obj_t *args) {
172172 return dict_get_helper (& ((mp_obj_dict_t * )args [0 ])-> map ,
173173 args [1 ],
174174 n_args == 3 ? args [2 ] : NULL ,
175- false, false );
175+ MP_MAP_LOOKUP );
176176}
177177static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (dict_get_obj , 2 , 3 , dict_get ) ;
178178
@@ -183,7 +183,7 @@ static mp_obj_t dict_pop(int n_args, const mp_obj_t *args) {
183183 return dict_get_helper (& ((mp_obj_dict_t * )args [0 ])-> map ,
184184 args [1 ],
185185 n_args == 3 ? args [2 ] : NULL ,
186- true, false );
186+ MP_MAP_LOOKUP_REMOVE_IF_FOUND );
187187}
188188static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (dict_pop_obj , 2 , 3 , dict_pop ) ;
189189
@@ -195,7 +195,7 @@ static mp_obj_t dict_setdefault(int n_args, const mp_obj_t *args) {
195195 return dict_get_helper (& ((mp_obj_dict_t * )args [0 ])-> map ,
196196 args [1 ],
197197 n_args == 3 ? args [2 ] : NULL ,
198- false, true );
198+ MP_MAP_LOOKUP_ADD_IF_NOT_FOUND );
199199}
200200static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (dict_setdefault_obj , 2 , 3 , dict_setdefault ) ;
201201
@@ -237,7 +237,7 @@ static mp_obj_t dict_update(mp_obj_t self_in, mp_obj_t iterable) {
237237 MP_QSTR_ValueError ,
238238 "dictionary update sequence has the wrong length" ));
239239 } else {
240- mp_map_lookup_helper (& self -> map , key , true, false )-> value = value ;
240+ mp_map_lookup (& self -> map , key , MP_MAP_LOOKUP_ADD_IF_NOT_FOUND )-> value = value ;
241241 }
242242 }
243243
@@ -273,7 +273,7 @@ const mp_obj_type_t dict_type = {
273273mp_obj_t mp_obj_new_dict (int n_args ) {
274274 mp_obj_dict_t * o = m_new_obj (mp_obj_dict_t );
275275 o -> base .type = & dict_type ;
276- mp_map_init (& o -> map , MP_MAP_OBJ , n_args );
276+ mp_map_init (& o -> map , n_args );
277277 return o ;
278278}
279279
@@ -284,6 +284,6 @@ uint mp_obj_dict_len(mp_obj_t self_in) {
284284mp_obj_t mp_obj_dict_store (mp_obj_t self_in , mp_obj_t key , mp_obj_t value ) {
285285 assert (MP_OBJ_IS_TYPE (self_in , & dict_type ));
286286 mp_obj_dict_t * self = self_in ;
287- mp_map_lookup_helper (& self -> map , key , true, false )-> value = value ;
287+ mp_map_lookup (& self -> map , key , MP_MAP_LOOKUP_ADD_IF_NOT_FOUND )-> value = value ;
288288 return self_in ;
289289}
0 commit comments