From 913cb0ac2f97859ac237f7ae15b29420239837ba Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Wed, 23 Nov 2022 18:57:53 +0100 Subject: Fixed a bug in cdeq after internal data-rep change. --- include/stc/cdeq.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/stc/cdeq.h') diff --git a/include/stc/cdeq.h b/include/stc/cdeq.h index 8bc68f3d..11bc82d2 100644 --- a/include/stc/cdeq.h +++ b/include/stc/cdeq.h @@ -229,9 +229,10 @@ _cx_memb(_shrink_to_fit)(_cx_self *self) { memmove(self->_base, self->data, self->_len*sizeof(i_key)); _cx_value* d = (_cx_value*)c_realloc(self->_base, self->_len*sizeof(i_key)); if (d) { - self->_base = self->data = d; + self->_base = d; self->_cap = self->_len; } + self->data = self->_base; } } @@ -321,7 +322,7 @@ _cx_memb(_expand_left_half_)(_cx_self* self, const size_t idx, const size_t n) { if (nfront >= n) { self->data = (_cx_value *)memmove(self->data - n, self->data, idx*sizeof(i_key)); } else { - if ((size_t)((float)sz*1.3f) > cap) + if ((size_t)((float)sz*1.3f) + n > cap) cap = _cx_memb(_realloc_)(self, n); const size_t unused = cap - (sz + n); const size_t pos = (nback*2 < unused) ? unused - nback : unused/2; -- cgit v1.2.3