Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorvald Natvig <slicer@users.sourceforge.net>2007-07-06 01:14:37 +0400
committerThorvald Natvig <slicer@users.sourceforge.net>2007-07-06 01:14:37 +0400
commit43853bc9aa8edd69df100109b01506c1bc5313ec (patch)
tree408ab5d4c3c54308ce1ba4dcc42238bf2061331e /src/PacketDataStream.h
parent24c7513400a81b53141430dccf850102997d7b6b (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.h17
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;