diff options
Diffstat (limited to 'src/segtree.c')
-rw-r--r-- | src/segtree.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/segtree.c b/src/segtree.c index 7217dbca..d1dbe10c 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -451,7 +451,7 @@ static int set_to_segtree(struct list_head *msgs, struct set *set, static bool segtree_needs_first_segment(const struct set *set, const struct expr *init, bool add) { - if (add) { + if (add && !set->root) { /* Add the first segment in four situations: * * 1) This is an anonymous set. @@ -465,12 +465,6 @@ static bool segtree_needs_first_segment(const struct set *set, (set->init == init)) { return true; } - } else { - /* If the set is empty after the removal, we have to - * remove the first non-matching segment too. - */ - if (set->init && set->init->size - init->size == 0) - return true; } /* This is an update for a set that already contains elements, so don't * add the first non-matching elements otherwise we hit EEXIST. |