mirror of
https://github.com/espressif/openthread.git
synced 2026-09-22 17:07:37 +00:00
[message] add destructors for MessageQueue and PriorityQueue (#11550)
This commit adds destructors for `MessageQueue` and `PriorityQueue`. This ensures that allocated `Message` instances in different queues are freed when the `ot::Instance` is destroyed.
This commit is contained in:
@@ -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<PriorityQueue>
|
||||
class PriorityQueue : private Clearable<PriorityQueue>, 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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user