Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
3131053e
Commit
3131053e
authored
Jun 05, 2016
by
Mark Anthony Palomer
Committed by
Paul Sokolovsky
Jun 12, 2016
Browse files
py/objdict: Implemented OrderedDict equality check.
parent
91031b60
Changes
1
Hide whitespace changes
Inline
Side-by-side
py/objdict.c
View file @
3131053e
...
...
@@ -119,8 +119,16 @@ STATIC mp_obj_t dict_binary_op(mp_uint_t op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
case
MP_BINARY_OP_EQUAL
:
{
#if MICROPY_PY_COLLECTIONS_ORDEREDDICT
if
(
MP_UNLIKELY
(
MP_OBJ_IS_TYPE
(
lhs_in
,
&
mp_type_ordereddict
)
&&
MP_OBJ_IS_TYPE
(
rhs_in
,
&
mp_type_ordereddict
)))
{
//TODO: implement
return
MP_OBJ_NULL
;
// Iterate through both dictionaries simultaneously and compare keys and values.
mp_obj_dict_t
*
rhs
=
MP_OBJ_TO_PTR
(
rhs_in
);
mp_uint_t
c1
=
0
,
c2
=
0
;
mp_map_elem_t
*
e1
=
dict_iter_next
(
o
,
&
c1
),
*
e2
=
dict_iter_next
(
rhs
,
&
c2
);
for
(;
e1
!=
NULL
&&
e2
!=
NULL
;
e1
=
dict_iter_next
(
o
,
&
c1
),
e2
=
dict_iter_next
(
rhs
,
&
c2
))
{
if
(
!
mp_obj_equal
(
e1
->
key
,
e2
->
key
)
||
!
mp_obj_equal
(
e1
->
value
,
e2
->
value
))
{
return
mp_const_false
;
}
}
return
e1
==
NULL
&&
e2
==
NULL
?
mp_const_true
:
mp_const_false
;
}
else
#endif
if
(
MP_OBJ_IS_TYPE
(
rhs_in
,
&
mp_type_dict
))
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment