--- a/src/common/packet-metadata.cc Wed May 07 15:01:45 2008 -0700
+++ b/src/common/packet-metadata.cc Wed May 07 15:02:07 2008 -0700
@@ -398,28 +398,23 @@
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
+ if (m_used + n > m_data->m_size ||
+ (m_head != 0xffff &&
+ m_data->m_count != 1 &&
+ m_used != m_data->m_dirtyEnd))
{
ReserveCopy (n);
- goto restart;
}
+ 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);
return n;
}
--- a/src/common/packet-metadata.h Wed May 07 15:01:45 2008 -0700
+++ b/src/common/packet-metadata.h Wed May 07 15:02:07 2008 -0700
@@ -249,13 +249,13 @@
uint32_t available);
inline void UpdateHead (uint16_t written);
inline void UpdateTail (uint16_t written);
- uint32_t GetUleb128Size (uint32_t value) const;
+ inline uint32_t GetUleb128Size (uint32_t value) const;
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 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);
+ inline void AppendValue (uint32_t value, uint8_t *buffer);
void AppendValueExtra (uint32_t value, uint8_t *buffer);
inline void Reserve (uint32_t n);
void ReserveCopy (uint32_t n);