Do not return destroyed Buffer iterator from ItemIterator::Next
This commit is contained in:
@@ -1109,10 +1109,8 @@ PacketMetadata::ItemIterator::Next (void)
|
||||
item.type = PacketMetadata::Item::HEADER;
|
||||
if (!item.isFragment)
|
||||
{
|
||||
ns3::Buffer tmp = m_buffer;
|
||||
tmp.RemoveAtStart (m_offset);
|
||||
tmp.RemoveAtEnd (tmp.GetSize () - item.currentSize);
|
||||
item.current = tmp.Begin ();
|
||||
item.current = m_buffer.Begin ();
|
||||
item.current.Next (m_offset);
|
||||
}
|
||||
}
|
||||
else if (tid.IsChildOf (Trailer::GetTypeId ()))
|
||||
@@ -1120,10 +1118,8 @@ PacketMetadata::ItemIterator::Next (void)
|
||||
item.type = PacketMetadata::Item::TRAILER;
|
||||
if (!item.isFragment)
|
||||
{
|
||||
ns3::Buffer tmp = m_buffer;
|
||||
tmp.RemoveAtEnd (tmp.GetSize () - (m_offset + smallItem.size));
|
||||
tmp.RemoveAtStart (tmp.GetSize () - item.currentSize);
|
||||
item.current = tmp.End ();
|
||||
item.current = m_buffer.End ();
|
||||
item.current.Prev (m_buffer.GetSize () - (m_offset + smallItem.size));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user