oops, wrong byte

This commit is contained in:
David Rose 2004-06-17 03:51:39 +00:00
parent 838fee3e29
commit 9f2b14f261
2 changed files with 13 additions and 13 deletions

View File

@ -103,7 +103,7 @@ end_pack() {
void DCPacker::
begin_unpack(const string &data, const DCPackerInterface *root) {
_unpack_str = data;
begin_unpack(data.data(), data.length(), root);
begin_unpack(_unpack_str.data(), _unpack_str.length(), root);
}
////////////////////////////////////////////////////////////////////
@ -207,15 +207,15 @@ push() {
} else {
size_t length;
if (length_bytes == 4) {
length = ((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8) |
((size_t)(unsigned char)_unpack_data[_unpack_p + 2] << 16) |
((size_t)(unsigned char)_unpack_data[_unpack_p + 3] << 24));
length = (size_t)((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8) |
((size_t)(unsigned char)_unpack_data[_unpack_p + 2] << 16) |
((size_t)(unsigned char)_unpack_data[_unpack_p + 3] << 24));
_unpack_p += 4;
_push_marker = _unpack_p + length;
} else {
length = ((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8));
length = (size_t)((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8));
_unpack_p += 2;
}
_push_marker = _unpack_p + length;

View File

@ -990,8 +990,8 @@ unpack_string(const char *data, size_t length, size_t &p, string &value) const {
if (p + 2 > length) {
return false;
}
string_length = ((unsigned int)(unsigned char)data[p] |
((unsigned int)(unsigned char)data[p + 1] << 8));
string_length = (size_t)((unsigned int)(unsigned char)data[p] |
((unsigned int)(unsigned char)data[p + 1] << 8));
p += 2;
break;
@ -999,10 +999,10 @@ unpack_string(const char *data, size_t length, size_t &p, string &value) const {
if (p + 4 > length) {
return false;
}
string_length = ((unsigned int)(unsigned char)data[p] |
((unsigned int)(unsigned char)data[p + 1] << 8) |
((unsigned int)(unsigned char)data[p + 2] << 16) |
((unsigned int)(unsigned char)data[p + 3] << 24));
string_length = (size_t)((unsigned int)(unsigned char)data[p] |
((unsigned int)(unsigned char)data[p + 1] << 8) |
((unsigned int)(unsigned char)data[p + 2] << 16) |
((unsigned int)(unsigned char)data[p + 3] << 24));
p += 4;
break;