mirror of
https://github.com/espressif/openthread.git
synced 2026-10-22 07:28:17 +00:00
[mesh-forwarder] use RemoveMessageIfNoPendingTx() (#10513)
This commit replaces direct calls to `DequeueAndFree()` with `RemoveMessageIfNoPendingTx()` in `EvictMessage()`, `HandleResolved()`, and `RemoveDataResponseMessages()`. This promotes consistency in message removal logic and eliminates the need to check if the removed message is `mSendMessage`, as this is already handled by `RemoveMessageIfNoPendingTx()`.
This commit is contained in:
@@ -208,6 +208,8 @@ void MeshForwarder::EvictMessage(Message &aMessage)
|
|||||||
|
|
||||||
OT_ASSERT(queue != nullptr);
|
OT_ASSERT(queue != nullptr);
|
||||||
|
|
||||||
|
LogMessage(kMessageEvict, aMessage, kErrorNoBufs);
|
||||||
|
|
||||||
if (queue == &mSendQueue)
|
if (queue == &mSendQueue)
|
||||||
{
|
{
|
||||||
#if OPENTHREAD_FTD
|
#if OPENTHREAD_FTD
|
||||||
@@ -218,15 +220,12 @@ void MeshForwarder::EvictMessage(Message &aMessage)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
FinalizeMessageDirectTx(aMessage, kErrorNoBufs);
|
FinalizeMessageDirectTx(aMessage, kErrorNoBufs);
|
||||||
|
RemoveMessageIfNoPendingTx(aMessage);
|
||||||
if (mSendMessage == &aMessage)
|
}
|
||||||
{
|
else
|
||||||
mSendMessage = nullptr;
|
{
|
||||||
}
|
queue->DequeueAndFree(aMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
LogMessage(kMessageEvict, aMessage, kErrorNoBufs);
|
|
||||||
queue->DequeueAndFree(aMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeshForwarder::ResumeMessageTransmissions(void)
|
void MeshForwarder::ResumeMessageTransmissions(void)
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ void MeshForwarder::HandleResolved(const Ip6::Address &aEid, Error aError)
|
|||||||
{
|
{
|
||||||
LogMessage(kMessageDrop, message, kErrorAddressQuery);
|
LogMessage(kMessageDrop, message, kErrorAddressQuery);
|
||||||
FinalizeMessageDirectTx(message, kErrorAddressQuery);
|
FinalizeMessageDirectTx(message, kErrorAddressQuery);
|
||||||
mSendQueue.DequeueAndFree(message);
|
RemoveMessageIfNoPendingTx(message);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,14 +337,9 @@ void MeshForwarder::RemoveDataResponseMessages(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mSendMessage == &message)
|
|
||||||
{
|
|
||||||
mSendMessage = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
LogMessage(kMessageDrop, message);
|
LogMessage(kMessageDrop, message);
|
||||||
FinalizeMessageDirectTx(message, kErrorDrop);
|
FinalizeMessageDirectTx(message, kErrorDrop);
|
||||||
mSendQueue.DequeueAndFree(message);
|
RemoveMessageIfNoPendingTx(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user