diff options
| author | Tyge Løvset <[email protected]> | 2021-04-27 09:22:41 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-04-27 09:22:41 +0200 |
| commit | 26b91f185828de6601255b47608f2fe57f9d8838 (patch) | |
| tree | 2c4a4540cba24bf271bfd915e6a5c9988539c83d | |
| parent | 391ffebcdf139a5f563840b55982fa43ef9ba002 (diff) | |
| download | STC-modified-26b91f185828de6601255b47608f2fe57f9d8838.tar.gz STC-modified-26b91f185828de6601255b47608f2fe57f9d8838.zip | |
Non-critical tweak on cdeq expansion policy.
| -rw-r--r-- | stc/cdeq.h | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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; \
|
