|
|
@ -248,7 +248,8 @@ public: |
|
|
|
|
|
|
|
|
|
|
|
void insert(iterator it, std::vector<char>::const_iterator first, std::vector<char>::const_iterator last) |
|
|
|
void insert(iterator it, std::vector<char>::const_iterator first, std::vector<char>::const_iterator last) |
|
|
|
{ |
|
|
|
{ |
|
|
|
assert(last - first >= 0); |
|
|
|
if (last == first) return; |
|
|
|
|
|
|
|
assert(last - first > 0); |
|
|
|
if (it == vch.begin() + nReadPos && (unsigned int)(last - first) <= nReadPos) |
|
|
|
if (it == vch.begin() + nReadPos && (unsigned int)(last - first) <= nReadPos) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// special case for inserting at the front when there's room
|
|
|
|
// special case for inserting at the front when there's room
|
|
|
@ -261,7 +262,8 @@ public: |
|
|
|
|
|
|
|
|
|
|
|
void insert(iterator it, const char* first, const char* last) |
|
|
|
void insert(iterator it, const char* first, const char* last) |
|
|
|
{ |
|
|
|
{ |
|
|
|
assert(last - first >= 0); |
|
|
|
if (last == first) return; |
|
|
|
|
|
|
|
assert(last - first > 0); |
|
|
|
if (it == vch.begin() + nReadPos && (unsigned int)(last - first) <= nReadPos) |
|
|
|
if (it == vch.begin() + nReadPos && (unsigned int)(last - first) <= nReadPos) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// special case for inserting at the front when there's room
|
|
|
|
// special case for inserting at the front when there's room
|
|
|
@ -339,6 +341,8 @@ public: |
|
|
|
|
|
|
|
|
|
|
|
void read(char* pch, size_t nSize) |
|
|
|
void read(char* pch, size_t nSize) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (nSize == 0) return; |
|
|
|
|
|
|
|
|
|
|
|
// Read from the beginning of the buffer
|
|
|
|
// Read from the beginning of the buffer
|
|
|
|
unsigned int nReadPosNext = nReadPos + nSize; |
|
|
|
unsigned int nReadPosNext = nReadPos + nSize; |
|
|
|
if (nReadPosNext >= vch.size()) |
|
|
|
if (nReadPosNext >= vch.size()) |
|
|
|