remove Update call from within AddSmall and AddBig

This commit is contained in:
Mathieu Lacage
2007-06-06 14:11:22 +02:00
parent f348fc4fbc
commit 4ed6463d22
2 changed files with 29 additions and 21 deletions

View File

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

View File

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