Optimize Write16/32/Double a bit.

Change-Id: I3d09a9d1b0b33da401312b3389234f7680da6f97
This commit is contained in:
Peter Johnson
2015-07-04 10:48:47 -07:00
parent 1634773529
commit c1c0c8d418
2 changed files with 18 additions and 15 deletions

View File

@@ -66,17 +66,19 @@ class WireEncoder {
/* Writes a 16-bit word. */
void Write16(unsigned int val) {
Reserve(2);
*m_cur++ = (char)((val >> 8) & 0xff);
*m_cur++ = (char)(val & 0xff);
m_cur[1] = (char)(val & 0xff); val >>= 8;
m_cur[0] = (char)(val & 0xff);
m_cur += 2;
}
/* Writes a 32-bit word. */
void Write32(unsigned long val) {
Reserve(4);
*m_cur++ = (char)((val >> 24) & 0xff);
*m_cur++ = (char)((val >> 16) & 0xff);
*m_cur++ = (char)((val >> 8) & 0xff);
*m_cur++ = (char)(val & 0xff);
m_cur[3] = (char)(val & 0xff); val >>= 8;
m_cur[2] = (char)(val & 0xff); val >>= 8;
m_cur[1] = (char)(val & 0xff); val >>= 8;
m_cur[0] = (char)(val & 0xff);
m_cur += 4;
}
/* Writes a double. */