diff --git a/src/network/model/packet-metadata.cc b/src/network/model/packet-metadata.cc index 595a92f44..ae6f7309c 100644 --- a/src/network/model/packet-metadata.cc +++ b/src/network/model/packet-metadata.cc @@ -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