summaryrefslogtreecommitdiff
path: root/shared-module/busio
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2017-10-02 20:49:40 -0400
committerScott Shawcroft <scott@tannewt.org>2017-10-03 12:07:17 -0700
commitc478c10923b9085b2abe135470e968029aaf2fdb (patch)
tree6d76c8aa9cc4553d68fe3ff766f2f36b59378ec5 /shared-module/busio
parentc2bb9e2eb50e0dee6d7405fd738f1b4b0f94d10b (diff)
Do not allow a *io object to be used after deinit().
Fixes #278, #277, #276, #275.
Diffstat (limited to 'shared-module/busio')
-rw-r--r--shared-module/busio/I2C.c4
-rw-r--r--shared-module/busio/OneWire.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/shared-module/busio/I2C.c b/shared-module/busio/I2C.c
index f8f154e7f..68d6ea22a 100644
--- a/shared-module/busio/I2C.c
+++ b/shared-module/busio/I2C.c
@@ -34,6 +34,10 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
shared_module_bitbangio_i2c_construct(&self->bitbang, scl, sda, freq);
}
+bool common_hal_busio_i2c_deinited(busio_i2c_obj_t *self) {
+ return shared_module_bitbangio_i2c_deinited(&self->bitbang);
+}
+
void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) {
shared_module_bitbangio_i2c_deinit(&self->bitbang);
}
diff --git a/shared-module/busio/OneWire.c b/shared-module/busio/OneWire.c
index 73d3d29d7..6bb7dedcd 100644
--- a/shared-module/busio/OneWire.c
+++ b/shared-module/busio/OneWire.c
@@ -34,7 +34,14 @@ void common_hal_busio_onewire_construct(busio_onewire_obj_t* self,
shared_module_bitbangio_onewire_construct(&self->bitbang, pin);
}
+bool common_hal_busio_onewire_deinited(busio_onewire_obj_t* self) {
+ return shared_module_bitbangio_onewire_deinited(&self->bitbang);
+}
+
void common_hal_busio_onewire_deinit(busio_onewire_obj_t* self) {
+ if (common_hal_busio_onewire_deinited(self)) {
+ return;
+ }
shared_module_bitbangio_onewire_deinit(&self->bitbang);
}