summaryrefslogtreecommitdiff
path: root/shared-bindings
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-09-22 10:28:25 -0500
committerJeff Epler <jepler@gmail.com>2020-09-22 10:28:25 -0500
commit82f37c92520248cef5086ac62a8483ae087e4531 (patch)
tree44abb5123328e143dd0d79d1793c1a12caa1ed08 /shared-bindings
parent9fd9cf1138817184399f381aacfc4aa1c4b16b76 (diff)
canio: fix read(), iterable bindings
Diffstat (limited to 'shared-bindings')
-rw-r--r--shared-bindings/canio/Listener.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/shared-bindings/canio/Listener.c b/shared-bindings/canio/Listener.c
index bca880880..1f4176f0c 100644
--- a/shared-bindings/canio/Listener.c
+++ b/shared-bindings/canio/Listener.c
@@ -50,7 +50,7 @@ STATIC mp_obj_t canio_listener_read(mp_obj_t self_in) {
common_hal_canio_listener_check_for_deinit(self);
canio_message_obj_t *message = m_new_obj(canio_message_obj_t);
- self->base.type = &canio_message_type;
+ message->base.type = &canio_message_type;
if (common_hal_canio_listener_readinto(self, message)) {
return message;
@@ -92,13 +92,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_in_waiting_obj, canio_listener_i
//| """Returns self, unless the object is deinitialized"""
//| ...
//|
-STATIC mp_obj_t canio_listener_iter(mp_obj_t self_in) {
- canio_listener_obj_t *self = MP_OBJ_TO_PTR(self_in);
- common_hal_canio_listener_check_for_deinit(self);
- return self;
-}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_iter_obj, canio_listener_iter);
-
//| def __next__(self):
//| """Reads a message, after waiting up to self.timeout seconds
//|
@@ -106,14 +99,13 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_iter_obj, canio_listener_iter);
//| a Message is returned."""
//| ...
//|
-STATIC mp_obj_t canio_listener_next(mp_obj_t self_in) {
+STATIC mp_obj_t canio_iternext(mp_obj_t self_in) {
mp_obj_t result = canio_listener_read(self_in);
if (result == mp_const_none) {
return MP_OBJ_STOP_ITERATION;
}
return result;
}
-STATIC MP_DEFINE_CONST_FUN_OBJ_1(canio_listener_next_obj, canio_listener_next);
//| def deinit(self) -> None:
//| """Deinitialize this object, freeing its hardware resources"""
@@ -176,8 +168,6 @@ STATIC const mp_obj_property_t canio_listener_timeout_obj = {
STATIC const mp_rom_map_elem_t canio_listener_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&canio_listener_enter_obj) },
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&canio_listener_exit_obj) },
- { MP_ROM_QSTR(MP_QSTR___iter__), MP_ROM_PTR(&canio_listener_iter_obj) },
- { MP_ROM_QSTR(MP_QSTR___next__), MP_ROM_PTR(&canio_listener_next_obj) },
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&canio_listener_deinit_obj) },
{ MP_ROM_QSTR(MP_QSTR_in_waiting), MP_ROM_PTR(&canio_listener_in_waiting_obj) },
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&canio_listener_read_obj) },
@@ -189,5 +179,7 @@ STATIC MP_DEFINE_CONST_DICT(canio_listener_locals_dict, canio_listener_locals_di
const mp_obj_type_t canio_listener_type = {
{ &mp_type_type },
.name = MP_QSTR_Listener,
+ .getiter = mp_identity_getiter,
+ .iternext = canio_iternext,
.locals_dict = (mp_obj_dict_t*)&canio_listener_locals_dict,
};