summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-06 20:08:56 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-04-06 20:08:56 +0300
commitea85a121f2b4bb806fbb59cd5da3f94cae8fb57c (patch)
treef837efc501456b43abc1c7c20c9ff9fb0725ab4a /py
parentcdd96dff2c017c952a238989c10f70143a8dd7d3 (diff)
downloadmicropython-ea85a121f2b4bb806fbb59cd5da3f94cae8fb57c.tar.gz
micropython-ea85a121f2b4bb806fbb59cd5da3f94cae8fb57c.zip
objdict: Support creating dict from another dict.
Diffstat (limited to 'py')
-rw-r--r--py/objdict.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/py/objdict.c b/py/objdict.c
index db68889bbe..7aadeefab5 100644
--- a/py/objdict.c
+++ b/py/objdict.c
@@ -12,6 +12,7 @@
STATIC mp_obj_t mp_obj_new_dict_iterator(mp_obj_dict_t *dict, int cur);
STATIC mp_map_elem_t *dict_it_iternext_elem(mp_obj_t self_in);
+STATIC mp_obj_t dict_copy(mp_obj_t self_in);
STATIC void dict_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
mp_obj_dict_t *self = self_in;
@@ -39,6 +40,10 @@ STATIC mp_obj_t dict_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp
break;
case 1:
+ if (MP_OBJ_IS_TYPE(args[0], &mp_type_dict)) {
+ return dict_copy(args[0]);
+ }
+ // TODO create dict from an arbitrary mapping!
// TODO create dict from an iterable!
assert(false);