From 26b91f185828de6601255b47608f2fe57f9d8838 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Tue, 27 Apr 2021 09:22:41 +0200 Subject: Non-critical tweak on cdeq expansion policy. --- stc/cdeq.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stc/cdeq.h b/stc/cdeq.h index f705f40d..54a7029c 100644 --- a/stc/cdeq.h +++ b/stc/cdeq.h @@ -221,11 +221,11 @@ static struct cdeq_rep _cdeq_inits = {0, 0}; CX##_expand_(CX* self, size_t n, bool at_front) { \ struct cdeq_rep* rep = cdeq_rep_(self); \ size_t len = rep->size, cap = rep->cap; \ - size_t nfront = self->data - self->_base, nback = cap - len - nfront; \ + size_t nfront = _cdeq_nfront(self), nback = cap - len - nfront; \ if (at_front && nfront >= n || !at_front && nback >= n) \ return; \ - if ((len + n)*1.2 > cap) { \ - cap = (len + 4)*1.8 + n; \ + if (len*1.2 + n > cap) { \ + cap = (size_t) (len*1.8) + n + 6; \ rep = (struct cdeq_rep*) c_realloc(rep->cap ? rep : NULL, \ offsetof(struct cdeq_rep, base) + cap*sizeof(Value)); \ rep->size = len, rep->cap = cap; \ -- cgit v1.2.3