summaryrefslogtreecommitdiff
path: root/lib/Buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Buffer.cc')
-rw-r--r--lib/Buffer.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Buffer.cc b/lib/Buffer.cc
index 414d97c..16966e4 100644
--- a/lib/Buffer.cc
+++ b/lib/Buffer.cc
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: Buffer.cc,v 1.21 2003-12-10 02:59:31 pixel Exp $ */
+/* $Id: Buffer.cc,v 1.22 2003-12-12 12:45:20 pixel Exp $ */
#include <string.h>
#ifdef HAVE_CONFIG_H
@@ -132,15 +132,17 @@ Byte Buffer::operator[](size_t p) const {
}
Byte & Buffer::operator[](size_t p) {
+ p++;
if (p > bufsiz) {
int numblocks = p / realloc_threshold;
int remains = p % realloc_threshold;
buffer = (Byte *) realloc(buffer, bufsiz = ((numblocks + (remains ? 1 : 0)) * realloc_threshold));
}
- if (p >= realsiz) {
+ if (p > realsiz) {
memset(buffer + realsiz, 0, p - realsiz);
- realsiz = p + 1;
+ realsiz = p;
}
+ p--;
if (seekable) {
return buffer[p];