Do not return destroyed Buffer iterator from ItemIterator::Next

This commit is contained in:
Alexander Krotov
2015-08-31 17:10:52 +03:00
parent 33e9f590d5
commit 4b466d7cd0

View File

@@ -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