testcase and fix, symmetric to changeset c861a47407a8
This commit is contained in:
@@ -767,6 +767,15 @@ PacketMetadataTest::RunTests (void)
|
||||
CHECK_HISTORY (p, 1, 500);
|
||||
p->RemoveAtEnd (10);
|
||||
CHECK_HISTORY (p, 1, 490);
|
||||
|
||||
p = Create<Packet> (500);
|
||||
CHECK_HISTORY (p, 1, 500);
|
||||
ADD_TRAILER (p, 10);
|
||||
CHECK_HISTORY (p, 2, 500, 10);
|
||||
REM_TRAILER (p, 10);
|
||||
CHECK_HISTORY (p, 1, 500);
|
||||
p->RemoveAtStart (10);
|
||||
CHECK_HISTORY (p, 1, 490);
|
||||
|
||||
|
||||
return result;
|
||||
|
||||
@@ -830,18 +830,13 @@ PacketMetadata::RemoveAtStart (uint32_t start)
|
||||
uint16_t written = fragment.AddBig (0xffff, fragment.m_tail,
|
||||
&item, &extraItem);
|
||||
fragment.UpdateTail (written);
|
||||
current = item.next;
|
||||
while (current != 0xffff)
|
||||
while (current != 0xffff && current != m_tail)
|
||||
{
|
||||
current = item.next;
|
||||
ReadItems (current, &item, &extraItem);
|
||||
written = fragment.AddBig (0xffff, fragment.m_tail,
|
||||
&item, &extraItem);
|
||||
fragment.UpdateTail (written);
|
||||
if (current == m_tail)
|
||||
{
|
||||
break;
|
||||
}
|
||||
current = item.next;
|
||||
}
|
||||
*this = fragment;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user