changeset 19638:dee68e5ac7b1

lib: Small istream-concat code cleanup in preperation for next change No actual changes, just moved some code into i_stream_concat_skip().
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 26 Jan 2016 15:17:34 +0200
parents 1c25fe4c74a0
children e583f67b241e
files src/lib/istream-concat.c
diffstat 1 files changed, 19 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/istream-concat.c	Tue Jan 26 14:19:23 2016 +0200
+++ b/src/lib/istream-concat.c	Tue Jan 26 15:17:34 2016 +0200
@@ -85,19 +85,10 @@
 	cstream->istream.pos = data_size;
 }
 
-static ssize_t i_stream_concat_read(struct istream_private *stream)
+static void i_stream_concat_skip(struct concat_istream *cstream)
 {
-	struct concat_istream *cstream = (struct concat_istream *)stream;
-	const unsigned char *data;
-	size_t size, data_size, cur_data_pos, new_pos, bytes_skipped;
-	size_t new_bytes_count;
-	ssize_t ret;
-	bool last_stream;
-
-	if (cstream->cur_input == NULL) {
-		stream->istream.stream_errno = EINVAL;
-		return -1;
-	}
+	struct istream_private *stream = &cstream->istream;
+	size_t bytes_skipped;
 
 	i_assert(stream->skip >= cstream->prev_skip);
 	bytes_skipped = stream->skip - cstream->prev_skip;
@@ -118,6 +109,22 @@
 	stream->buffer += bytes_skipped;
 	cstream->prev_skip = stream->skip;
 	i_stream_skip(cstream->cur_input, bytes_skipped);
+}
+
+static ssize_t i_stream_concat_read(struct istream_private *stream)
+{
+	struct concat_istream *cstream = (struct concat_istream *)stream;
+	const unsigned char *data;
+	size_t size, data_size, cur_data_pos, new_pos;
+	size_t new_bytes_count;
+	ssize_t ret;
+	bool last_stream;
+
+	if (cstream->cur_input == NULL) {
+		stream->istream.stream_errno = EINVAL;
+		return -1;
+	}
+	i_stream_concat_skip(cstream);
 
 	i_assert(stream->pos >= stream->skip + cstream->prev_stream_left);
 	cur_data_pos = stream->pos - (stream->skip + cstream->prev_stream_left);