From d80df39629394ef244e6f1fb9ea350bd6c4ccea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Sat, 23 Dec 2017 14:04:19 +0100 Subject: [PATCH] Destructors --- code/espurna/sensors/BMX280Sensor.h | 4 ++++ code/espurna/sensors/DallasSensor.h | 6 +++++- code/espurna/sensors/HLW8012Sensor.h | 1 + code/espurna/sensors/MHZ19Sensor.h | 6 ++++++ code/espurna/sensors/PMSX003Sensor.h | 5 +++++ code/espurna/sensors/V9261FSensor.h | 4 ++++ 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/code/espurna/sensors/BMX280Sensor.h b/code/espurna/sensors/BMX280Sensor.h index 80b15dbb..7bcd7713 100644 --- a/code/espurna/sensors/BMX280Sensor.h +++ b/code/espurna/sensors/BMX280Sensor.h @@ -28,6 +28,10 @@ class BMX280Sensor : public I2CSensor { _bme = new BME280(); } + ~BMX280Sensor() { + delete _bme; + } + // --------------------------------------------------------------------- // Sensor API // --------------------------------------------------------------------- diff --git a/code/espurna/sensors/DallasSensor.h b/code/espurna/sensors/DallasSensor.h index 9ab1f64d..b0da723a 100644 --- a/code/espurna/sensors/DallasSensor.h +++ b/code/espurna/sensors/DallasSensor.h @@ -37,6 +37,10 @@ class DallasSensor : public BaseSensor { _sensor_id = SENSOR_DALLAS_ID; } + ~DallasSensor() { + if (_wire) delete _wire; + } + // --------------------------------------------------------------------- void setGPIO(unsigned char gpio) { @@ -279,6 +283,6 @@ class DallasSensor : public BaseSensor { unsigned char _gpio; unsigned long _interval; - OneWire * _wire; + OneWire * _wire = NULL; }; diff --git a/code/espurna/sensors/HLW8012Sensor.h b/code/espurna/sensors/HLW8012Sensor.h index 05383827..8a813b44 100644 --- a/code/espurna/sensors/HLW8012Sensor.h +++ b/code/espurna/sensors/HLW8012Sensor.h @@ -27,6 +27,7 @@ class HLW8012Sensor : public BaseSensor { ~HLW8012Sensor() { _enableInterrupts(false); + delete _hlw8012; } void expectedCurrent(double expected) { diff --git a/code/espurna/sensors/MHZ19Sensor.h b/code/espurna/sensors/MHZ19Sensor.h index d4769511..63d9dd12 100644 --- a/code/espurna/sensors/MHZ19Sensor.h +++ b/code/espurna/sensors/MHZ19Sensor.h @@ -34,6 +34,12 @@ class MHZ19Sensor : public BaseSensor { _sensor_id = SENSOR_MHZ19_ID; } + ~MHZ19Sensor() { + if (_serial) delete _serial; + } + + // --------------------------------------------------------------------- + void setRX(unsigned char pin_rx) { if (_pin_rx == pin_rx) return; _pin_rx = pin_rx; diff --git a/code/espurna/sensors/PMSX003Sensor.h b/code/espurna/sensors/PMSX003Sensor.h index 266a0a3c..4ab49e40 100644 --- a/code/espurna/sensors/PMSX003Sensor.h +++ b/code/espurna/sensors/PMSX003Sensor.h @@ -25,6 +25,11 @@ class PMSX003Sensor : public BaseSensor { _sensor_id = SENSOR_PMSX003_ID; } + ~PMSX003Sensor() { + if (_serial) delete _serial; + if (_pms) delete _pms; + } + void setRX(unsigned char pin_rx) { if (_pin_rx == pin_rx) return; _pin_rx = pin_rx; diff --git a/code/espurna/sensors/V9261FSensor.h b/code/espurna/sensors/V9261FSensor.h index 75c63cc7..5249ff6c 100644 --- a/code/espurna/sensors/V9261FSensor.h +++ b/code/espurna/sensors/V9261FSensor.h @@ -23,6 +23,10 @@ class V9261FSensor : public BaseSensor { _sensor_id = SENSOR_V9261F_ID; } + ~V9261FSensor() { + if (_serial) delete _serial; + } + // --------------------------------------------------------------------- void setRX(unsigned char pin_rx) {