--- a/src/common/packet-metadata.cc Fri Apr 04 07:28:27 2008 +0200
+++ b/src/common/packet-metadata.cc Fri Apr 04 19:02:03 2008 +0200
@@ -36,7 +36,6 @@
uint32_t PacketMetadata::m_maxSize = 0;
uint16_t PacketMetadata::m_chunkUid = 0;
PacketMetadata::DataFreeList PacketMetadata::m_freeList;
-bool g_optOne = false;
PacketMetadata::DataFreeList::~DataFreeList ()
{
@@ -60,12 +59,6 @@
m_enable = true;
}
-void
-PacketMetadata::SetOptOne (bool optOne)
-{
- g_optOne = optOne;
-}
-
void
PacketMetadata::ReserveCopy (uint32_t size)
{
@@ -186,27 +179,6 @@
buffer[1] = value;
}
bool
-PacketMetadata::TryToAppendFast (uint32_t value, uint8_t **pBuffer, uint8_t *end)
-{
- uint8_t *start = *pBuffer;
- if (value < 0x80 && start < end)
- {
- start[0] = value;
- *pBuffer = start + 1;
- return true;
- }
- if (value < 0x4000 && start + 1 < end)
- {
- uint8_t byte = value & (~0x80);
- start[0] = 0x80 | byte;
- value >>= 7;
- start[1] = value;
- *pBuffer = start + 2;
- return true;
- }
- return false;
-}
-bool
PacketMetadata::TryToAppend16 (uint16_t value, uint8_t **pBuffer, uint8_t *end)
{
uint8_t *start = *pBuffer;
@@ -423,65 +395,32 @@
{
NS_ASSERT (m_data != 0);
NS_ASSERT (m_used != item->prev && m_used != item->next);
- if (g_optOne)
- {
- uint32_t typeUidSize = GetUleb128Size (item->typeUid);
- uint32_t sizeSize = GetUleb128Size (item->size);
- uint32_t n = typeUidSize + sizeSize + 2 + 2 + 2;
- restart:
- if (m_used + n <= m_data->m_size &&
- (m_head == 0xffff ||
- m_data->m_count == 1 ||
- m_used == m_data->m_dirtyEnd))
- {
- uint8_t *buffer = &m_data->m_data[m_used];
- Append16 (item->next, buffer);
- buffer += 2;
- Append16 (item->prev, buffer);
- buffer += 2;
- AppendValue (item->typeUid, buffer);
- buffer += typeUidSize;
- AppendValue (item->size, buffer);
- buffer += sizeSize;
- Append16 (item->chunkUid, buffer);
- }
- else
- {
- ReserveCopy (n);
- goto restart;
- }
- return n;
- }
- append:
- uint8_t *start = &m_data->m_data[m_used];
- uint8_t *end = &m_data->m_data[m_data->m_size];
- if (end - start >= 8 &&
+ uint32_t typeUidSize = GetUleb128Size (item->typeUid);
+ uint32_t sizeSize = GetUleb128Size (item->size);
+ uint32_t n = typeUidSize + sizeSize + 2 + 2 + 2;
+ restart:
+ if (m_used + n <= m_data->m_size &&
(m_head == 0xffff ||
m_data->m_count == 1 ||
m_used == m_data->m_dirtyEnd))
{
- uint8_t *buffer = start;
-
+ uint8_t *buffer = &m_data->m_data[m_used];
Append16 (item->next, buffer);
buffer += 2;
Append16 (item->prev, buffer);
buffer += 2;
- if (TryToAppendFast (item->typeUid, &buffer, end) &&
- TryToAppendFast (item->size, &buffer, end) &&
- TryToAppend16 (item->chunkUid, &buffer, end))
- {
- uintptr_t written = buffer - start;
- NS_ASSERT (written <= 0xffff);
- NS_ASSERT (written >= 8);
- return written;
- }
+ AppendValue (item->typeUid, buffer);
+ buffer += typeUidSize;
+ AppendValue (item->size, buffer);
+ buffer += sizeSize;
+ Append16 (item->chunkUid, buffer);
}
- uint32_t n = GetUleb128Size (item->typeUid);
- n += GetUleb128Size (item->size);
- n += 2;
- n += 2 + 2;
- Reserve (n);
- goto append;
+ else
+ {
+ ReserveCopy (n);
+ goto restart;
+ }
+ return n;
}
uint16_t
--- a/src/common/packet-metadata.h Fri Apr 04 07:28:27 2008 +0200
+++ b/src/common/packet-metadata.h Fri Apr 04 19:02:03 2008 +0200
@@ -124,7 +124,6 @@
};
static void Enable (void);
- static void SetOptOne (bool optOne);
inline PacketMetadata (uint32_t uid, uint32_t size);
inline PacketMetadata (PacketMetadata const &o);
@@ -254,7 +253,6 @@
uint32_t ReadUleb128 (const uint8_t **pBuffer) const;
inline void Append16 (uint16_t value, uint8_t *buffer);
inline bool TryToAppend (uint32_t value, uint8_t **pBuffer, uint8_t *end);
- inline bool TryToAppendFast (uint32_t value, uint8_t **pBuffer, uint8_t *end);
inline bool TryToAppend32 (uint32_t value, uint8_t **pBuffer, uint8_t *end);
inline bool TryToAppend16 (uint16_t value, uint8_t **pBuffer, uint8_t *end);
void AppendValue (uint32_t value, uint8_t *buffer);
--- a/utils/bench-packets.cc Fri Apr 04 07:28:27 2008 +0200
+++ b/utils/bench-packets.cc Fri Apr 04 19:02:03 2008 +0200
@@ -224,14 +224,9 @@
runBench (&benchPtrC, n, "c");
//runBench (&benchPrint, n, "print");
- PacketMetadata::SetOptOne (false);
runBench (&benchPtrA, n, "meta-a");
runBench (&benchPtrB, n, "meta-b");
runBench (&benchPtrC, n, "meta-c");
- PacketMetadata::SetOptOne (true);
- runBench (&benchPtrA, n, "meta-a-opt");
- runBench (&benchPtrB, n, "meta-b-opt");
- runBench (&benchPtrC, n, "meta-c-opt");
return 0;