dovecot-2.0: seq_range_array_add() returns now TRUE if seq was a...

dovecot at dovecot.org dovecot at dovecot.org
Mon Apr 19 16:35:39 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/4ee1d2312d83
changeset: 11172:4ee1d2312d83
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Apr 19 16:35:36 2010 +0300
description:
seq_range_array_add() returns now TRUE if seq was already in array.

diffstat:

 src/lib/seq-range-array.c |  15 ++++++++-------
 src/lib/seq-range-array.h |   4 ++--
 2 files changed, 10 insertions(+), 9 deletions(-)

diffs (74 lines):

diff -r 8e6cb40f577f -r 4ee1d2312d83 src/lib/seq-range-array.c
--- a/src/lib/seq-range-array.c	Mon Apr 19 16:31:50 2010 +0300
+++ b/src/lib/seq-range-array.c	Mon Apr 19 16:35:36 2010 +0300
@@ -33,7 +33,7 @@
 	return FALSE;
 }
 
-void seq_range_array_add(ARRAY_TYPE(seq_range) *array,
+bool seq_range_array_add(ARRAY_TYPE(seq_range) *array,
 			 unsigned int init_count, uint32_t seq)
 {
 	struct seq_range *data, value;
@@ -47,33 +47,33 @@
 	data = array_get_modifiable(array, &count);
 	if (count == 0) {
 		array_append(array, &value, 1);
-		return;
+		return FALSE;
 	}
 
 	/* quick checks */
 	if (data[count-1].seq2 == seq-1) {
 		/* grow last range */
 		data[count-1].seq2 = seq;
-		return;
+		return FALSE;
 	}
 	if (data[count-1].seq2 < seq) {
 		array_append(array, &value, 1);
-		return;
+		return FALSE;
 	}
 	if (data[0].seq1 == seq+1) {
 		/* grow down first range */
 		data[0].seq1 = seq;
-		return;
+		return FALSE;
 	}
 	if (data[0].seq1 > seq) {
 		array_insert(array, 0, &value, 1);
-		return;
+		return FALSE;
 	}
 
 	/* somewhere in the middle, array is sorted so find it with
 	   binary search */
 	if (seq_range_lookup(array, seq, &idx))
-		return;
+		return TRUE;
 
 	/* idx == count couldn't happen because we already handle it above */
 	i_assert(idx < count && data[idx].seq1 >= seq);
@@ -97,6 +97,7 @@
 	} else {
 		array_insert(array, idx, &value, 1);
 	}
+	return FALSE;
 }
 
 void seq_range_array_add_range(ARRAY_TYPE(seq_range) *array,
diff -r 8e6cb40f577f -r 4ee1d2312d83 src/lib/seq-range-array.h
--- a/src/lib/seq-range-array.h	Mon Apr 19 16:31:50 2010 +0300
+++ b/src/lib/seq-range-array.h	Mon Apr 19 16:35:36 2010 +0300
@@ -12,8 +12,8 @@
 };
 
 /* Add sequrence to range. If the array isn't created yet, create it with
-   initial size of init_count. */
-void seq_range_array_add(ARRAY_TYPE(seq_range) *array, unsigned int init_count,
+   initial size of init_count. Returns TRUE if seq was already in the array. */
+bool seq_range_array_add(ARRAY_TYPE(seq_range) *array, unsigned int init_count,
 			 uint32_t seq);
 void seq_range_array_add_range(ARRAY_TYPE(seq_range) *array,
 			       uint32_t seq1, uint32_t seq2);


More information about the dovecot-cvs mailing list