Bugfixes.

This commit is contained in:
JoelKatz
2012-04-26 19:08:28 -07:00
parent dc98472f2c
commit d248f40c84

View File

@@ -81,7 +81,7 @@ 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); o = mData.at(offset++);
o <<= 8; o |= mData.at(offset); o <<= 8; o |= mData.at(offset);
return true; return true;
} }
@@ -89,8 +89,8 @@ bool Serializer::get16(uint16& o, int offset) const
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); 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);
return true; return true;
} }
@@ -98,10 +98,10 @@ bool Serializer::get32(uint32& o, int offset) const
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); 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++); 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);
return true; return true;
} }
@@ -390,12 +390,12 @@ bool Serializer::getTaggedList(std::list<TaggedListItem>& list, int offset, int&
list.clear(); list.clear();
int startOffset = offset; int startOffset = offset;
int numElem; int numElem;
if (!get8(numElem, ++offset)) return false; if (!get8(numElem, offset++)) return false;
for (int i = 0; i<numElem; i++) for (int i = 0; i<numElem; i++)
{ {
int tag, len; int tag, len;
std::vector<unsigned char> data; std::vector<unsigned char> data;
if (!get8(tag, ++offset)) return false; if (!get8(tag, offset++)) return false;
if (!getVL(data, offset, len)) return false; if (!getVL(data, offset, len)) return false;
offset += len; offset += len;
list.push_back(std::make_pair(tag, data)); list.push_back(std::make_pair(tag, data));
@@ -409,12 +409,12 @@ bool Serializer::getTaggedList(std::vector<TaggedListItem>& list, int offset, in
list.clear(); list.clear();
int startOffset=offset; int startOffset=offset;
int numElem; int numElem;
if (!get8(numElem, ++offset)) return false; if (!get8(numElem, offset++)) return false;
for (int i=0; i<numElem; i++) for (int i=0; i<numElem; i++)
{ {
int tag, len; int tag, len;
std::vector<unsigned char> data; std::vector<unsigned char> data;
if (!get8(tag, ++offset)) return false; if (!get8(tag, offset++)) return false;
if (!getVL(data, offset, len)) return false; if (!getVL(data, offset, len)) return false;
offset += len; offset += len;
list.push_back(std::make_pair(tag, data)); list.push_back(std::make_pair(tag, data));