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