From 6467e3d40b0297f88ccbad8fa565aa3790c2931a Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Wed, 6 Sep 2017 14:49:30 -0700 Subject: shared-bindings: Prevent check_lock from being optimized away. (#240) Fixes #229 --- shared-bindings/busio/I2C.c | 1 + shared-bindings/busio/SPI.c | 1 + 2 files changed, 2 insertions(+) (limited to 'shared-bindings') diff --git a/shared-bindings/busio/I2C.c b/shared-bindings/busio/I2C.c index a10a792fd..0431add78 100644 --- a/shared-bindings/busio/I2C.c +++ b/shared-bindings/busio/I2C.c @@ -110,6 +110,7 @@ STATIC mp_obj_t busio_i2c_obj___exit__(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(busio_i2c___exit___obj, 4, 4, busio_i2c_obj___exit__); static void check_lock(busio_i2c_obj_t *self) { + asm(""); if (!common_hal_busio_i2c_has_lock(self)) { mp_raise_RuntimeError("Function requires lock."); } diff --git a/shared-bindings/busio/SPI.c b/shared-bindings/busio/SPI.c index 9f073234e..6e2ea5a6a 100644 --- a/shared-bindings/busio/SPI.c +++ b/shared-bindings/busio/SPI.c @@ -126,6 +126,7 @@ STATIC mp_obj_t busio_spi_obj___exit__(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(busio_spi_obj___exit___obj, 4, 4, busio_spi_obj___exit__); static void check_lock(busio_spi_obj_t *self) { + asm(""); if (!common_hal_busio_spi_has_lock(self)) { mp_raise_RuntimeError("Function requires lock"); } -- cgit v1.2.3