diff options
author | Damien George <damien.p.george@gmail.com> | 2015-02-15 01:10:13 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-02-15 01:10:13 +0000 |
commit | f6532bb9e054fd20af5063b1e77ef98863f36c84 (patch) | |
tree | e1655fd67386ff2ee4329420db902dd8b5052ae0 /py/objtype.c | |
parent | d1c37883756045fb92d58592181bf53481d7693d (diff) | |
download | micropython-f6532bb9e054fd20af5063b1e77ef98863f36c84.tar.gz micropython-f6532bb9e054fd20af5063b1e77ef98863f36c84.zip |
py: Simplify and remove redundant code for __iter__ method lookup.
Diffstat (limited to 'py/objtype.c')
-rw-r--r-- | py/objtype.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/py/objtype.c b/py/objtype.c index 95a7e6b5f3..6accaa74ed 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -644,21 +644,13 @@ STATIC mp_obj_t instance_getiter(mp_obj_t self_in) { }; mp_obj_class_lookup(&lookup, self->base.type); if (member[0] == MP_OBJ_NULL) { - // This kinda duplicates code in mp_getiter() - lookup.attr = MP_QSTR___getitem__; - lookup.meth_offset = 0; // TODO - mp_obj_class_lookup(&lookup, self->base.type); - if (member[0] != MP_OBJ_NULL) { - // __getitem__ exists, create an iterator - return mp_obj_new_getitem_iter(member); - } return MP_OBJ_NULL; - } - if (member[0] == MP_OBJ_SENTINEL) { + } else if (member[0] == MP_OBJ_SENTINEL) { mp_obj_type_t *type = mp_obj_get_type(self->subobj[0]); return type->getiter(self->subobj[0]); + } else { + return mp_call_method_n_kw(0, 0, member); } - return mp_call_method_n_kw(0, 0, member); } STATIC mp_int_t instance_get_buffer(mp_obj_t self_in, mp_buffer_info_t *bufinfo, mp_uint_t flags) { |