diff --git a/src/shared/ByteBuffer.h b/src/shared/ByteBuffer.h index 8fb4ef674..d6cd6b473 100644 --- a/src/shared/ByteBuffer.h +++ b/src/shared/ByteBuffer.h @@ -166,6 +166,11 @@ class ByteBuffer _bitpos = 8; } + void ResetBitReader() + { + _bitpos = 8; + } + template bool WriteBit(T bit) { --_bitpos; @@ -187,8 +192,8 @@ class ByteBuffer ++_bitpos; if (_bitpos > 7) { - _bitpos = 0; _curbitval = read(); + _bitpos = 0; } return ((_curbitval >> (7-_bitpos)) & 1) != 0; @@ -515,6 +520,7 @@ class ByteBuffer ByteBuffer& read_skip(size_t skip) { + ResetBitReader(); if(_rpos + skip > size()) throw ByteBufferException(false, _rpos, skip, size()); _rpos += skip; @@ -524,6 +530,7 @@ class ByteBuffer template T read() { + ResetBitReader(); T r = read(_rpos); _rpos += sizeof(T); return r; @@ -540,6 +547,7 @@ class ByteBuffer ByteBuffer& read(uint8* dest, size_t len) { + ResetBitReader(); if(_rpos + len > size()) throw ByteBufferException(false, _rpos, len, size()); memcpy(dest, &_storage[_rpos], len); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index ec2c475ea..263ace1a8 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0004" + #define REVISION_NR "0005" #endif // __REVISION_NR_H__