diff --git a/src/core/common/message.hpp b/src/core/common/message.hpp index 54e6a0551..bc372f9f0 100644 --- a/src/core/common/message.hpp +++ b/src/core/common/message.hpp @@ -1569,7 +1569,7 @@ private: /** * Implements a message queue. */ -class MessageQueue : public otMessageQueue +class MessageQueue : public otMessageQueue, private NonCopyable { friend class Message; friend class PriorityQueue; @@ -1592,6 +1592,13 @@ public: */ MessageQueue(void) { SetTail(nullptr); } +#if OPENTHREAD_PLATFORM_NEXUS + /** + * Destructor of `MessageQueue`. + */ + ~MessageQueue(void) { DequeueAndFreeAll(); } +#endif + /** * Returns a pointer to the first message. * @@ -1678,7 +1685,7 @@ private: /** * Implements a priority queue. */ -class PriorityQueue : private Clearable +class PriorityQueue : private Clearable, private NonCopyable { friend class Message; friend class MessageQueue; @@ -1693,6 +1700,13 @@ public: */ PriorityQueue(void) { Clear(); } +#if OPENTHREAD_PLATFORM_NEXUS + /** + * Destructor of `PriorityQueue`. + */ + ~PriorityQueue(void) { DequeueAndFreeAll(); } +#endif + /** * Returns a pointer to the first message. *