From 588c3b9637eba1e4813a51a9e768fb0b9ebaba6c Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 1 Oct 2020 11:19:33 +0300 Subject: [PATCH] lib: seq_range_array_add() - Reorder code flow --- src/lib/seq-range-array.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/lib/seq-range-array.c b/src/lib/seq-range-array.c index 598ddd9292..e320b948d8 100644 --- a/src/lib/seq-range-array.c +++ b/src/lib/seq-range-array.c @@ -82,36 +82,32 @@ bool seq_range_array_add(ARRAY_TYPE(seq_range) *array, uint32_t seq) { struct seq_range *data, value; unsigned int count; + bool exists = FALSE; value.seq1 = value.seq2 = seq; data = array_get_modifiable(array, &count); - if (count == 0) { - array_push_back(array, &value); - return FALSE; - } - /* quick checks */ - if (data[count-1].seq2 < seq) { + if (count == 0) + array_push_back(array, &value); + else if (data[count-1].seq2 < seq) { if (data[count-1].seq2 == seq-1) { /* grow last range */ data[count-1].seq2 = seq; } else { array_push_back(array, &value); } - return FALSE; - } - if (data[0].seq1 > seq) { + } else if (data[0].seq1 > seq) { if (data[0].seq1-1 == seq) { /* grow down first range */ data[0].seq1 = seq; } else { array_push_front(array, &value); } - return FALSE; + } else { + exists = seq_range_array_add_slow_path(array, seq); } - - return seq_range_array_add_slow_path(array, seq); + return exists; } void seq_range_array_add_with_init(ARRAY_TYPE(seq_range) *array, -- 2.47.3