changeset 5480:c19ab50e54ea HEAD

Use the new generic istream functionality.
author Timo Sirainen <tss@iki.fi>
date Sat, 31 Mar 2007 11:33:37 +0300
parents b3999af65adb
children 460d6aeee7af
files src/plugins/zlib/istream-zlib.c
diffstat 1 files changed, 4 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/zlib/istream-zlib.c	Sat Mar 31 11:32:32 2007 +0300
+++ b/src/plugins/zlib/istream-zlib.c	Sat Mar 31 11:33:37 2007 +0300
@@ -15,8 +15,6 @@
 struct zlib_istream {
 	struct _istream istream;
 
-	size_t max_buffer_size;
-
 	int fd;
 	gzFile *file;
 	uoff_t cached_size;
@@ -42,38 +40,6 @@
 	p_free(_stream->iostream.pool, _stream->w_buffer);
 }
 
-static void _set_max_buffer_size(struct _iostream *stream, size_t max_size)
-{
-	struct zlib_istream *zstream = (struct zlib_istream *)stream;
-
-	zstream->max_buffer_size = max_size;
-}
-
-static void i_stream_grow_buffer(struct _istream *stream, size_t bytes)
-{
-	struct zlib_istream *zstream = (struct zlib_istream *)stream;
-	size_t old_size;
-
-	old_size = stream->buffer_size;
-
-	stream->buffer_size = stream->pos + bytes;
-	if (stream->buffer_size <= I_STREAM_MIN_SIZE)
-		stream->buffer_size = I_STREAM_MIN_SIZE;
-	else {
-		stream->buffer_size =
-			pool_get_exp_grown_size(stream->iostream.pool,
-						old_size, stream->buffer_size);
-	}
-
-	if (zstream->max_buffer_size > 0 &&
-	    stream->buffer_size > zstream->max_buffer_size)
-		stream->buffer_size = zstream->max_buffer_size;
-
-	stream->buffer = stream->w_buffer =
-		p_realloc(stream->iostream.pool, stream->w_buffer,
-			  old_size, stream->buffer_size);
-}
-
 static void i_stream_compress(struct _istream *stream)
 {
 	memmove(stream->w_buffer, stream->w_buffer + stream->skip,
@@ -101,10 +67,10 @@
 			i_stream_compress(stream);
 		}
 
-		if (zstream->max_buffer_size == 0 ||
-		    stream->buffer_size < zstream->max_buffer_size) {
+		if (stream->max_buffer_size == 0 ||
+		    stream->buffer_size < stream->max_buffer_size) {
 			/* buffer is full - grow it */
-			i_stream_grow_buffer(stream, I_STREAM_MIN_SIZE);
+			_i_stream_grow_buffer(stream, I_STREAM_MIN_SIZE);
 		}
 
 		if (stream->pos == stream->buffer_size) {
@@ -247,12 +213,11 @@
 	zstream->fd = fd;
 	zstream->file = gzdopen(fd, "r");
 	zstream->cached_size = (uoff_t)-1;
-	zstream->max_buffer_size = DEFAULT_MAX_BUFFER_SIZE;
 
 	zstream->istream.iostream.close = _close;
 	zstream->istream.iostream.destroy = _destroy;
-	zstream->istream.iostream.set_max_buffer_size = _set_max_buffer_size;
 
+	zstream->istream.max_buffer_size = DEFAULT_MAX_BUFFER_SIZE;
 	zstream->istream.read = _read;
 	zstream->istream.seek = _seek;
 	zstream->istream.stat = _stat;