diff options
author | Andrew Tridgell <tridge@samba.org> | 2013-08-28 18:00:32 +1000 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-08-28 11:15:43 +0200 |
commit | ad732ee3a146b40c2b600eb78f804086105a4c57 (patch) | |
tree | b09eb775c698ca30cae76cd38d110d65affc6694 /src/drivers | |
parent | d28f5ac03fc9e73cf26c8afa1ed701ca5af0df08 (diff) | |
download | px4-firmware-ad732ee3a146b40c2b600eb78f804086105a4c57.tar.gz px4-firmware-ad732ee3a146b40c2b600eb78f804086105a4c57.tar.bz2 px4-firmware-ad732ee3a146b40c2b600eb78f804086105a4c57.zip |
free perf counters in driver destructor
this prevents drivers that probe on one bus then instantiate on
another from leaving behind stale/duplicate perf counters
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/airspeed/airspeed.cpp | 5 | ||||
-rw-r--r-- | src/drivers/hmc5883/hmc5883.cpp | 5 | ||||
-rw-r--r-- | src/drivers/ms5611/ms5611.cpp | 6 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/drivers/airspeed/airspeed.cpp b/src/drivers/airspeed/airspeed.cpp index 277d8249a..e54f5b3ab 100644 --- a/src/drivers/airspeed/airspeed.cpp +++ b/src/drivers/airspeed/airspeed.cpp @@ -106,6 +106,11 @@ Airspeed::~Airspeed() /* free any existing reports */ if (_reports != nullptr) delete[] _reports; + + // free perf counters + perf_free(_sample_perf); + perf_free(_comms_errors); + perf_free(_buffer_overflows); } int diff --git a/src/drivers/hmc5883/hmc5883.cpp b/src/drivers/hmc5883/hmc5883.cpp index d77f03bb7..1a337ca3a 100644 --- a/src/drivers/hmc5883/hmc5883.cpp +++ b/src/drivers/hmc5883/hmc5883.cpp @@ -359,6 +359,11 @@ HMC5883::~HMC5883() /* free any existing reports */ if (_reports != nullptr) delete[] _reports; + + // free perf counters + perf_free(_sample_perf); + perf_free(_comms_errors); + perf_free(_buffer_overflows); } int diff --git a/src/drivers/ms5611/ms5611.cpp b/src/drivers/ms5611/ms5611.cpp index d9268c0b3..b572e042c 100644 --- a/src/drivers/ms5611/ms5611.cpp +++ b/src/drivers/ms5611/ms5611.cpp @@ -225,6 +225,12 @@ MS5611::~MS5611() if (_reports != nullptr) delete[] _reports; + // free perf counters + perf_free(_sample_perf); + perf_free(_measure_perf); + perf_free(_comms_errors); + perf_free(_buffer_overflows); + delete _interface; } |