diff options
author | Thorvald Natvig <slicer@users.sourceforge.net> | 2007-07-06 01:14:37 +0400 |
---|---|---|
committer | Thorvald Natvig <slicer@users.sourceforge.net> | 2007-07-06 01:14:37 +0400 |
commit | 43853bc9aa8edd69df100109b01506c1bc5313ec (patch) | |
tree | 408ab5d4c3c54308ce1ba4dcc42238bf2061331e /src/PacketDataStream.h | |
parent | 24c7513400a81b53141430dccf850102997d7b6b (diff) |
Wrong int encoding in PacketDataStream.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@546 05730e5d-ab1b-0410-a4ac-84af385074fa
Diffstat (limited to 'src/PacketDataStream.h')
-rw-r--r-- | src/PacketDataStream.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/PacketDataStream.h b/src/PacketDataStream.h index ce923d651..713793631 100644 --- a/src/PacketDataStream.h +++ b/src/PacketDataStream.h @@ -70,7 +70,7 @@ class PacketDataStream { ok = false; } } - + void skip(quint32 len) { if (left() >= len) offset += len; @@ -86,11 +86,11 @@ class PacketDataStream { return 0; } }; - + void rewind() { offset = 0; } - + void truncate() { maxsize = offset; } @@ -136,15 +136,19 @@ class PacketDataStream { PacketDataStream &operator <<(const quint32 i) { if (i < 0x80) { + // Need top bit clear append(i); - } else if (i < 0xC000) { + } else if (i < 0x4000) { + // Need top two bits clear append((i >> 8) | 0x80); append(i & 0xFF); - } else if (i < 0xE00000) { + } else if (i < 0x200000) { + // Need top three bits clear append((i >> 16) | 0xC0); append((i >> 8) & 0xFF); append(i & 0xFF); - } else if (i < 0xF0000000) { + } else if (i < 0x10000000) { + // Need top four bits clear append((i >> 24) | 0xE0); append((i >> 16) & 0xFF); append((i >> 8) & 0xFF); @@ -184,6 +188,7 @@ class PacketDataStream { PacketDataStream &operator >>(QByteArray &a) { quint32 len; *this >> len; + qWarning("Looking for %d bytes with %d left", len, left()); if (len > left()) { len = left(); ok = false; |