don't forget to skip dead messages on far side during expiration

this is mostly theoretical, as at this point no updates to the message
list can have actually happened. but it's future-proof and consistent
with the near-side loop.
This commit is contained in:
Oswald Buddenhagen 2020-07-16 13:08:29 +02:00
parent 5d6741a9a8
commit ca72383fe9

View File

@ -1671,6 +1671,8 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int recent_msgs, void *aux
} }
} }
for (tmsg = svars->msgs[F]; tmsg; tmsg = tmsg->next) { for (tmsg = svars->msgs[F]; tmsg; tmsg = tmsg->next) {
if (tmsg->status & M_DEAD)
continue;
if ((srec = tmsg->srec) && (srec->status & S_PENDING) && !(tmsg->flags & F_DELETED)) if ((srec = tmsg->srec) && (srec->status & S_PENDING) && !(tmsg->flags & F_DELETED))
alive++; alive++;
} }
@ -1705,6 +1707,8 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int recent_msgs, void *aux
} }
} }
for (tmsg = svars->msgs[F]; tmsg; tmsg = tmsg->next) { for (tmsg = svars->msgs[F]; tmsg; tmsg = tmsg->next) {
if (tmsg->status & M_DEAD)
continue;
if ((srec = tmsg->srec) && (srec->status & S_PENDING)) { if ((srec = tmsg->srec) && (srec->status & S_PENDING)) {
nflags = tmsg->flags; nflags = tmsg->flags;
if (!(nflags & F_DELETED)) { if (!(nflags & F_DELETED)) {