summaryrefslogtreecommitdiffhomepage
path: root/stc
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-12-30 14:23:23 +0100
committerTyge Løvset <[email protected]>2020-12-30 14:23:23 +0100
commit9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7 (patch)
tree8ac997cea96d4bc260ea5b8885abefab48e6a6fc /stc
parent2b46410ef5bb28c4551cdd422c5e22731bd6b610 (diff)
downloadSTC-modified-9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7.tar.gz
STC-modified-9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7.zip
Some more opts.
Diffstat (limited to 'stc')
-rw-r--r--stc/cdeq.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/stc/cdeq.h b/stc/cdeq.h
index 8f621f18..98d2e608 100644
--- a/stc/cdeq.h
+++ b/stc/cdeq.h
@@ -236,8 +236,8 @@
size_t nfront = self->data - self->base, nback = cap - (nfront + len); \
if (at_front && nfront >= n || !at_front && nback >= n) \
return; \
- if ((len + n)*1.1 > cap) { \
- cap = (len + n + 6)*2; \
+ if ((len + n)*1.3 > cap) { \
+ cap = (len + n + 6)*1.8; \
size_t* rep = (size_t *) c_realloc(_cdeq_alloced(self->base), 2*sizeof(size_t) + cap*sizeof(Value)); \
rep[0] = len, rep[1] = cap; \
self->base = (cdeq_##X##_value_t *) (rep + 2); \
@@ -245,10 +245,9 @@
return _cdeq_##X##_expand(self, n, at_front); \
} \
size_t unused = cap - (len + n); \
- size_t pos = at_front ? c_maxf(unused*0.6, (float) unused - nback) + n \
- : c_minf(unused*0.4, nfront); \
- memmove(self->base + pos, self->data, len*sizeof(Value)); \
- self->data = self->base + pos; \
+ size_t pos = at_front ? c_maxf(unused*0.5, (float) unused - nback) + n \
+ : c_minf(unused*0.5, nfront); \
+ self->data = (cdeq_##X##_value_t *) memmove(self->base + pos, self->data, len*sizeof(Value)); \
} \
\
STC_DEF void \