From 29b1cede64b79abee893ad7d8d54e55a9fbda3bc Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 5 May 2012 15:03:08 -0700 Subject: [PATCH] Optimizations suggested by Arthur. --- src/Serializer.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Serializer.cpp b/src/Serializer.cpp index ac3c029ba..01073bba6 100644 --- a/src/Serializer.cpp +++ b/src/Serializer.cpp @@ -81,28 +81,31 @@ int Serializer::addRaw(const void *ptr, int len) bool Serializer::get16(uint16& o, int offset) const { if ((offset + 2) > mData.size()) return false; - o = mData.at(offset++); - o <<= 8; o |= mData.at(offset); + unsigned char *ptr = &mData[offset]; + o = *ptr++; o <<= 8; o |= *ptr; return true; } bool Serializer::get32(uint32& o, int offset) const { if ((offset + 4) > mData.size()) return false; - o=mData.at(offset++); - o<<=8; o |= mData.at(offset++); o <<= 8; o |= mData.at(offset++); - o<<=8; o |= mData.at(offset); + unsigned char *ptr = &mData[offset]; + o = *ptr++; + o <<= 8; o |= *ptr++; + o <<= 8; o |= *ptr++; + o <<= 8; o |= *ptr; return true; } bool Serializer::get64(uint64& o, int offset) const { if ((offset + 8) > mData.size()) return false; - o=mData.at(offset++); - o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); - o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); - o<<=8; o|= mData.at(offset++); o <<= 8; o |= mData.at(offset++); - o<<=8; o|= mData.at(offset); + unsigned char *ptr = &mData[offset]; + o = *ptr++; + o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++; + o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++; + o <<= 8; o |= *ptr++; o <<= 8; o |= *ptr++; + o <<= 8; o |= *ptr; return true; }