diff options
| author | Tyge Løvset <[email protected]> | 2022-11-23 18:57:53 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2022-11-23 18:57:53 +0100 |
| commit | 913cb0ac2f97859ac237f7ae15b29420239837ba (patch) | |
| tree | b4b5a389ef006b52aa62989fb2f56dabf81d4912 /include/stc/cdeq.h | |
| parent | 72f75574edea7a864d5784e38d7d90315c2b2190 (diff) | |
| download | STC-modified-913cb0ac2f97859ac237f7ae15b29420239837ba.tar.gz STC-modified-913cb0ac2f97859ac237f7ae15b29420239837ba.zip | |
Fixed a bug in cdeq after internal data-rep change.
Diffstat (limited to 'include/stc/cdeq.h')
| -rw-r--r-- | include/stc/cdeq.h | 5 |
1 files changed, 3 insertions, 2 deletions
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; |
