Skip to content

Commit 797f0a1

Browse files
authored
Merge pull request #5450 from FoamyGuy/none_check_fourwire
Fix `FourWire` and `I2CDisplay` argument validation
2 parents f13db0d + b799b2e commit 797f0a1

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

shared-bindings/displayio/FourWire.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "py/binary.h"
3333
#include "py/objproperty.h"
3434
#include "py/runtime.h"
35+
#include "shared-bindings/busio/SPI.h"
3536
#include "shared-bindings/displayio/Group.h"
3637
#include "shared-bindings/microcontroller/Pin.h"
3738
#include "shared-bindings/util.h"
@@ -78,7 +79,8 @@ STATIC mp_obj_t displayio_fourwire_make_new(const mp_obj_type_t *type, size_t n_
7879
mcu_pin_obj_t *chip_select = validate_obj_is_free_pin(args[ARG_chip_select].u_obj);
7980
mcu_pin_obj_t *reset = validate_obj_is_free_pin_or_none(args[ARG_reset].u_obj);
8081

81-
mp_obj_t spi = args[ARG_spi_bus].u_obj;
82+
mp_obj_t spi = mp_arg_validate_type(args[ARG_spi_bus].u_obj, &busio_spi_type, MP_QSTR_spi_bus);
83+
8284
displayio_fourwire_obj_t *self = &allocate_display_bus_or_raise()->fourwire_bus;
8385
self->base.type = &displayio_fourwire_type;
8486

shared-bindings/displayio/I2CDisplay.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "py/objproperty.h"
3535
#include "py/runtime.h"
3636
#include "shared-bindings/microcontroller/Pin.h"
37+
#include "shared-bindings/busio/I2C.h"
3738
#include "shared-bindings/util.h"
3839
#include "shared-module/displayio/__init__.h"
3940
#include "supervisor/shared/translate.h"
@@ -67,7 +68,7 @@ STATIC mp_obj_t displayio_i2cdisplay_make_new(const mp_obj_type_t *type, size_t
6768

6869
mcu_pin_obj_t *reset = validate_obj_is_free_pin_or_none(args[ARG_reset].u_obj);
6970

70-
mp_obj_t i2c = args[ARG_i2c_bus].u_obj;
71+
mp_obj_t i2c = mp_arg_validate_type(args[ARG_i2c_bus].u_obj, &busio_i2c_type, MP_QSTR_i2c_bus);
7172
displayio_i2cdisplay_obj_t *self = &allocate_display_bus_or_raise()->i2cdisplay_bus;
7273
self->base.type = &displayio_i2cdisplay_type;
7374

0 commit comments

Comments
 (0)