changeset 424:9824d5df1843 HEAD

use p_realloc() instead of p_realloc_min().
author Timo Sirainen <tss@iki.fi>
date Mon, 14 Oct 2002 23:36:51 +0300
parents 08b99ae95f30
children a63ec8754d2e
files src/lib-imap/imap-parser.c
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-parser.c	Mon Oct 14 23:36:24 2002 +0300
+++ b/src/lib-imap/imap-parser.c	Mon Oct 14 23:36:51 2002 +0300
@@ -22,8 +22,9 @@
 	OBuffer *outbuf;
 	size_t max_literal_size;
 
+	ImapArg *args;
 	unsigned int pos;
-	ImapArg *args;
+	unsigned int args_size;
 
 	ArgParseType cur_type;
 	size_t cur_pos;
@@ -67,6 +68,7 @@
 
 	parser->pos = 0;
 	parser->args = NULL;
+	parser->args_size = 0;
 
 	parser->cur_type = ARG_PARSE_NONE;
 	parser->cur_pos = 0;
@@ -463,19 +465,17 @@
 int imap_parser_read_args(ImapParser *parser, unsigned int count,
 			  ImapParserFlags flags, ImapArg **args)
 {
-	unsigned int args_size;
-
 	parser->flags = flags;
 
-	args_size = 0;
 	while (count == 0 || parser->pos < count) {
-		if (parser->pos >= args_size) {
-			args_size = nearest_power(parser->pos);
-			if (args_size < 8) args_size = 8;
+		if (parser->pos >= parser->args_size) {
+			parser->args_size = nearest_power(parser->pos+1);
+			if (parser->args_size < 8)
+				parser->args_size = 8;
 
 			parser->args =
-				p_realloc_min(parser->pool, parser->args,
-					      args_size * sizeof(ImapArg));
+				p_realloc(parser->pool, parser->args,
+					  parser->args_size * sizeof(ImapArg));
 		}
 
 		if (!imap_parser_read_arg(parser, &parser->args[parser->pos]))