remove Update call from within AddSmall and AddBig
This commit is contained in:
@@ -338,7 +338,8 @@ PacketHistory::PacketHistory (uint32_t uid, uint32_t size)
|
||||
{
|
||||
if (size > 0)
|
||||
{
|
||||
AddSmall (true, 0, size);
|
||||
uint16_t written = AddSmall (true, 0, size);
|
||||
Update (true, written);
|
||||
}
|
||||
}
|
||||
PacketHistory::PacketHistory (PacketHistory const &o)
|
||||
@@ -602,7 +603,7 @@ PacketHistory::Update (bool atStart, uint16_t written)
|
||||
m_data->m_dirtyEnd = m_used;
|
||||
}
|
||||
|
||||
void
|
||||
uint16_t
|
||||
PacketHistory::AddSmall (bool atStart,
|
||||
uint32_t typeUid, uint32_t size)
|
||||
{
|
||||
@@ -645,9 +646,8 @@ PacketHistory::AddSmall (bool atStart,
|
||||
{
|
||||
uintptr_t written = buffer - start;
|
||||
NS_ASSERT (written <= 0xffff);
|
||||
Update (atStart, written);
|
||||
g_one++;
|
||||
return;
|
||||
return written;
|
||||
}
|
||||
}
|
||||
g_two++;
|
||||
@@ -659,7 +659,7 @@ PacketHistory::AddSmall (bool atStart,
|
||||
goto append;
|
||||
}
|
||||
|
||||
void
|
||||
uint16_t
|
||||
PacketHistory::AddBig (bool atStart,
|
||||
const PacketHistory::SmallItem *item,
|
||||
const PacketHistory::ExtraItem *extraItem)
|
||||
@@ -705,8 +705,7 @@ PacketHistory::AddBig (bool atStart,
|
||||
{
|
||||
uintptr_t written = buffer - start;
|
||||
NS_ASSERT (written <= 0xffff);
|
||||
Update (atStart, written);
|
||||
return;
|
||||
return written;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -758,10 +757,12 @@ PacketHistory::ReplaceTail (const PacketHistory::SmallItem *item,
|
||||
struct PacketHistory::SmallItem tmpItem;
|
||||
PacketHistory::ExtraItem tmpExtraItem;
|
||||
ReadItems (current, &tmpItem, &tmpExtraItem);
|
||||
h.AddBig (false, &tmpItem, &tmpExtraItem);
|
||||
uint16_t written = h.AddBig (false, &tmpItem, &tmpExtraItem);
|
||||
h.Update (false, written);
|
||||
}
|
||||
// append new tail.
|
||||
h.AddBig (false, item, extraItem);
|
||||
uint16_t written = h.AddBig (false, item, extraItem);
|
||||
h.Update (false, written);
|
||||
|
||||
*this = h;
|
||||
}
|
||||
@@ -899,7 +900,8 @@ PacketHistory::AddHeader (uint32_t uid, Chunk const & header, uint32_t size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
AddSmall (true, uid, size);
|
||||
uint16_t written = AddSmall (true, uid, size);
|
||||
Update (true, written);
|
||||
}
|
||||
void
|
||||
PacketHistory::RemoveHeader (uint32_t uid, Chunk const & header, uint32_t size)
|
||||
@@ -946,7 +948,8 @@ PacketHistory::AddTrailer (uint32_t uid, Chunk const & trailer, uint32_t size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
AddSmall (false, uid, size);
|
||||
uint16_t written = AddSmall (false, uid, size);
|
||||
Update (false, written);
|
||||
}
|
||||
void
|
||||
PacketHistory::RemoveTrailer (uint32_t uid, Chunk const & trailer, uint32_t size)
|
||||
@@ -1031,7 +1034,8 @@ PacketHistory::AddAtEnd (PacketHistory const&o)
|
||||
else
|
||||
{
|
||||
// append the extra items.
|
||||
AddBig (false, &item, &extraItem);
|
||||
uint16_t written = AddBig (false, &item, &extraItem);
|
||||
Update (false, written);
|
||||
}
|
||||
if (current == o.m_tail)
|
||||
{
|
||||
@@ -1080,12 +1084,14 @@ PacketHistory::RemoveAtStart (uint32_t start)
|
||||
PacketHistory fragment (m_packetUid, 0);
|
||||
extraItem.fragmentStart += leftToRemove;
|
||||
leftToRemove = 0;
|
||||
fragment.AddBig (false, &item, &extraItem);
|
||||
uint16_t written = fragment.AddBig (false, &item, &extraItem);
|
||||
Update (false, written);
|
||||
current = item.next;
|
||||
while (current != 0xffff)
|
||||
{
|
||||
ReadItems (current, &item, &extraItem);
|
||||
fragment.AddBig (false, &item, &extraItem);
|
||||
written = fragment.AddBig (false, &item, &extraItem);
|
||||
Update (false, written);
|
||||
if (current == m_tail)
|
||||
{
|
||||
break;
|
||||
@@ -1137,12 +1143,14 @@ PacketHistory::RemoveAtEnd (uint32_t end)
|
||||
NS_ASSERT (extraItem.fragmentEnd > leftToRemove);
|
||||
extraItem.fragmentEnd -= leftToRemove;
|
||||
leftToRemove = 0;
|
||||
fragment.AddBig (true, &item, &extraItem);
|
||||
uint16_t written = fragment.AddBig (true, &item, &extraItem);
|
||||
Update (true, written);
|
||||
current = item.prev;
|
||||
while (current != 0xffff)
|
||||
{
|
||||
ReadItems (current, &item, &extraItem);
|
||||
fragment.AddBig (true, &item, &extraItem);
|
||||
written = fragment.AddBig (true, &item, &extraItem);
|
||||
Update (true, written);
|
||||
if (current == m_head)
|
||||
{
|
||||
break;
|
||||
|
||||
@@ -98,11 +98,11 @@ private:
|
||||
void AddTrailer (uint32_t uid, Chunk const & trailer, uint32_t size);
|
||||
void RemoveTrailer (uint32_t uid, Chunk const & trailer, uint32_t size);
|
||||
|
||||
void AddSmall (bool atStart,
|
||||
uint32_t typeUid, uint32_t size);
|
||||
void AddBig (bool atStart,
|
||||
const PacketHistory::SmallItem *item,
|
||||
const PacketHistory::ExtraItem *extraItem);
|
||||
uint16_t AddSmall (bool atStart,
|
||||
uint32_t typeUid, uint32_t size);
|
||||
uint16_t AddBig (bool atStart,
|
||||
const PacketHistory::SmallItem *item,
|
||||
const PacketHistory::ExtraItem *extraItem);
|
||||
void ReplaceTail (const PacketHistory::SmallItem *item,
|
||||
const PacketHistory::ExtraItem *extraItem,
|
||||
uint32_t available);
|
||||
|
||||
Reference in New Issue
Block a user