aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2017-09-06 14:49:30 -0700
committerDan Halbert <halbert@halwitz.org>2017-09-06 17:49:30 -0400
commit6467e3d40b0297f88ccbad8fa565aa3790c2931a (patch)
treecb1669d14215dd6d9f01415eb99bd56b80e6494d
parentacbca4451253d71645669a2137260d1fefaf5ac6 (diff)
shared-bindings: Prevent check_lock from being optimized away. (#240)
Fixes #229
-rw-r--r--shared-bindings/busio/I2C.c1
-rw-r--r--shared-bindings/busio/SPI.c1
2 files changed, 2 insertions, 0 deletions
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");
}