Optimizations suggested by Arthur.

This commit is contained in:
JoelKatz
2012-05-05 15:03:08 -07:00
parent ccb7427a14
commit 29b1cede64

View File

@@ -81,28 +81,31 @@ int Serializer::addRaw(const void *ptr, int len)
bool Serializer::get16(uint16& o, int offset) const bool Serializer::get16(uint16& o, int offset) const
{ {
if ((offset + 2) > mData.size()) return false; if ((offset + 2) > mData.size()) return false;
o = mData.at(offset++); unsigned char *ptr = &mData[offset];
o <<= 8; o |= mData.at(offset); o = *ptr++; o <<= 8; o |= *ptr;
return true; return true;
} }
bool Serializer::get32(uint32& o, int offset) const bool Serializer::get32(uint32& o, int offset) const
{ {
if ((offset + 4) > mData.size()) return false; if ((offset + 4) > mData.size()) return false;
o=mData.at(offset++); unsigned char *ptr = &mData[offset];
o<<=8; o |= mData.at(offset++); o <<= 8; o |= mData.at(offset++); o = *ptr++;
o<<=8; o |= mData.at(offset); o <<= 8; o |= *ptr++;
o <<= 8; o |= *ptr++;
o <<= 8; o |= *ptr;
return true; return true;
} }
bool Serializer::get64(uint64& o, int offset) const bool Serializer::get64(uint64& o, int offset) const
{ {
if ((offset + 8) > mData.size()) return false; if ((offset + 8) > mData.size()) return false;
o=mData.at(offset++); unsigned char *ptr = &mData[offset];
o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); o = *ptr++;
o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++;
o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++;
o<<=8; o|= mData.at(offset); o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++;
o <<= 8; o |= *ptr;
return true; return true;
} }