diff --git a/hal/api/AnalogIn.h b/hal/api/AnalogIn.h index 01b863f555..b30fd610a9 100644 --- a/hal/api/AnalogIn.h +++ b/hal/api/AnalogIn.h @@ -103,6 +103,10 @@ public: } #endif + virtual ~AnalogIn() { + // Do nothing + } + protected: virtual void lock() { diff --git a/hal/api/AnalogOut.h b/hal/api/AnalogOut.h index 68488d9709..315ab4e49f 100644 --- a/hal/api/AnalogOut.h +++ b/hal/api/AnalogOut.h @@ -122,6 +122,10 @@ public: } #endif + virtual ~AnalogOut() { + // Do nothing + } + protected: virtual void lock() { diff --git a/hal/api/I2C.h b/hal/api/I2C.h index 817c590d6e..38fcdbc3fd 100644 --- a/hal/api/I2C.h +++ b/hal/api/I2C.h @@ -145,6 +145,10 @@ public: */ virtual void unlock(void); + virtual ~I2C() { + // Do nothing + } + #if DEVICE_I2C_ASYNCH /** Start non-blocking I2C transfer. diff --git a/hal/api/InterruptManager.h b/hal/api/InterruptManager.h index 30c705f1ac..f31fae5dca 100644 --- a/hal/api/InterruptManager.h +++ b/hal/api/InterruptManager.h @@ -113,14 +113,13 @@ public: */ bool remove_handler(pFunctionPointer_t handler, IRQn_Type irq); -protected: - virtual void lock(); - virtual void unlock(); - private: InterruptManager(); ~InterruptManager(); + void lock(); + void unlock(); + // We declare the copy contructor and the assignment operator, but we don't // implement them. This way, if someone tries to copy/assign our instance, // he will get an error at compile time.