[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:
Abtin Keshavarzian
2024-07-16 08:57:49 -07:00
committed by GitHub
parent b301a4c43f
commit be6b198730
2 changed files with 9 additions and 15 deletions
+7 -8
View File
@@ -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)
+2 -7
View File
@@ -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);
} }
} }