simplify code logic
This commit is contained in:
@@ -398,28 +398,23 @@ PacketMetadata::AddSmall (const struct PacketMetadata::SmallItem *item)
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -249,13 +249,13 @@ private:
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user