summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Lovset <[email protected]>2022-05-13 01:21:39 +0200
committerTyge Lovset <[email protected]>2022-05-13 01:21:39 +0200
commit0232d9f3f6206305662cb9163fdb23372ab6b227 (patch)
tree29ad27762c09f3af3edd0b716e8eabcbb68965cb
parent7b6fb49407abdd41c2bc1fdb8c84aaabcc3295de (diff)
downloadSTC-modified-0232d9f3f6206305662cb9163fdb23372ab6b227.tar.gz
STC-modified-0232d9f3f6206305662cb9163fdb23372ab6b227.zip
constness and code formatting.
-rw-r--r--examples/ex_gauss1.c7
-rw-r--r--include/stc/cdeq.h51
-rw-r--r--include/stc/clist.h26
-rw-r--r--include/stc/cmap.h4
-rw-r--r--include/stc/cvec.h44
5 files changed, 81 insertions, 51 deletions
diff --git a/examples/ex_gauss1.c b/examples/ex_gauss1.c
index bdcd1bd3..081a4a73 100644
--- a/examples/ex_gauss1.c
+++ b/examples/ex_gauss1.c
@@ -11,13 +11,10 @@
#include <stc/cmap.h>
// Declare int vector with map entries that can be sorted by map keys.
-struct {int first; size_t second;} typedef mapval;
-static int compare(mapval *a, mapval *b) {
- return c_default_cmp(&a->first, &b->first);
-}
+struct { int first; size_t second; } typedef mapval;
#define i_val mapval
-#define i_cmp compare
+#define i_less(x, y) x->first < y->first
#define i_tag pair
#include <stc/cvec.h>
diff --git a/include/stc/cdeq.h b/include/stc/cdeq.h
index 397186c9..7d2362c7 100644
--- a/include/stc/cdeq.h
+++ b/include/stc/cdeq.h
@@ -230,7 +230,10 @@ _cx_memb(_shrink_to_fit)(_cx_self *self) {
const size_t sz = rep->size;
memmove(self->_base, self->data, sz*sizeof(i_key));
rep = (struct cdeq_rep*) c_realloc(rep, offsetof(struct cdeq_rep, base) + sz*sizeof(i_key));
- if (rep) { self->_base = self->data = (_cx_value*) rep->base; rep->cap = sz; }
+ if (rep) {
+ self->_base = self->data = (_cx_value*)rep->base;
+ rep->cap = sz;
+ }
}
}
@@ -238,7 +241,8 @@ STC_DEF void
_cx_memb(_drop)(_cx_self* self) {
struct cdeq_rep* rep = cdeq_rep_(self);
// second test to supress gcc -O2 warn: -Wfree-nonheap-object
- if (rep->cap == 0 || rep == &_cdeq_sentinel) return;
+ if (rep->cap == 0 || rep == &_cdeq_sentinel)
+ return;
_cx_memb(_clear)(self);
c_free(rep);
}
@@ -250,7 +254,8 @@ _cx_memb(_realloc_)(_cx_self* self, const size_t n) {
const size_t nfront = _cdeq_nfront(self);
rep = (struct cdeq_rep*) c_realloc(rep->cap ? rep : NULL,
offsetof(struct cdeq_rep, base) + cap*sizeof(i_key));
- if (!rep) return 0;
+ if (!rep)
+ return 0;
rep->size = sz, rep->cap = cap;
self->_base = (_cx_value *) rep->base;
self->data = self->_base + nfront;
@@ -263,7 +268,8 @@ _cx_memb(_expand_right_half_)(_cx_self* self, const size_t idx, const size_t n)
const size_t sz = rep->size, cap = rep->cap;
const size_t nfront = _cdeq_nfront(self), nback = cap - sz - nfront;
if (nback >= n || sz*1.3 + n > cap) {
- if (!_cx_memb(_realloc_)(self, n)) return false;
+ if (!_cx_memb(_realloc_)(self, n))
+ return false;
memmove(self->data + idx + n, self->data + idx, (sz - idx)*sizeof(i_key));
} else {
#if !defined _i_queue
@@ -326,22 +332,26 @@ _cx_memb(_expand_left_half_)(_cx_self* self, const size_t idx, const size_t n) {
const size_t sz = rep->size;
const size_t nfront = _cdeq_nfront(self), nback = cap - sz - nfront;
if (nfront >= n) {
- self->data = (_cx_value *) memmove(self->data - n, self->data, idx*sizeof(i_key));
+ self->data = (_cx_value *)memmove(self->data - n, self->data, idx*sizeof(i_key));
} else {
- if (sz*1.3 + n > cap) cap = _cx_memb(_realloc_)(self, n);
+ if (sz*1.3 + 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;
memmove(self->_base + pos + idx + n, self->data + idx, (sz - idx)*sizeof(i_key));
- self->data = (_cx_value *) memmove(self->_base + pos, self->data, idx*sizeof(i_key));
+ self->data = (_cx_value *)memmove(self->_base + pos, self->data, idx*sizeof(i_key));
}
}
static _cx_value*
-_cx_memb(_insert_space_)(_cx_self* self, const _cx_value* pos, const size_t n) {
+_cx_memb(_expand_uninit_p)(_cx_self* self, const _cx_value* pos, const size_t n) {
const size_t idx = pos - self->data;
- if (idx*2 < cdeq_rep_(self)->size) _cx_memb(_expand_left_half_)(self, idx, n);
- else _cx_memb(_expand_right_half_)(self, idx, n);
- if (n) cdeq_rep_(self)->size += n; /* do only if size > 0 */
+ if (idx*2 < cdeq_rep_(self)->size)
+ _cx_memb(_expand_left_half_)(self, idx, n);
+ else
+ _cx_memb(_expand_right_half_)(self, idx, n);
+ if (n)
+ cdeq_rep_(self)->size += n; /* do only if size > 0 */
return self->data + idx;
}
@@ -359,8 +369,9 @@ _cx_memb(_push_front)(_cx_self* self, i_key value) {
STC_DEF _cx_value*
_cx_memb(_insert_range_p)(_cx_self* self, _cx_value* pos,
const _cx_value* p1, const _cx_value* p2) {
- pos = _cx_memb(_insert_space_)(self, pos, p2 - p1);
- if (pos) memcpy(pos, p1, (p2 - p1)*sizeof *p1);
+ pos = _cx_memb(_expand_uninit_p)(self, pos, p2 - p1);
+ if (pos)
+ memcpy(pos, p1, (p2 - p1)*sizeof *p1);
return pos;
}
@@ -370,7 +381,8 @@ _cx_memb(_erase_range_p)(_cx_self* self, _cx_value* p1, _cx_value* p2) {
if (n > 0) {
_cx_value* p = p1, *end = self->data + cdeq_rep_(self)->size;
for (; p != p2; ++p) { i_keydrop(p); }
- if (p1 == self->data) self->data += n;
+ if (p1 == self->data)
+ self->data += n;
else memmove(p1, p2, (end - p2) * sizeof(i_key));
cdeq_rep_(self)->size -= n;
}
@@ -381,7 +393,7 @@ _cx_memb(_erase_range_p)(_cx_self* self, _cx_value* p1, _cx_value* p2) {
#if !defined _i_no_emplace
STC_DEF _cx_value*
_cx_memb(_emplace_range_p)(_cx_self* self, _cx_value* pos, const _cx_raw* p1, const _cx_raw* p2) {
- pos = _cx_memb(_insert_space_)(self, pos, p2 - p1);
+ pos = _cx_memb(_expand_uninit_p)(self, pos, p2 - p1);
_cx_value* it = pos;
if (pos) for (; p1 != p2; ++p1)
*pos++ = i_keyfrom((*p1));
@@ -392,7 +404,7 @@ _cx_memb(_emplace_range_p)(_cx_self* self, _cx_value* pos, const _cx_raw* p1, co
STC_DEF _cx_value*
_cx_memb(_clone_range_p)(_cx_self* self, _cx_value* pos,
const _cx_value* p1, const _cx_value* p2) {
- pos = _cx_memb(_insert_space_)(self, pos, p2 - p1);
+ pos = _cx_memb(_expand_uninit_p)(self, pos, p2 - p1);
_cx_value* it = pos;
if (pos) for (; p1 != p2; ++p1)
*pos++ = i_keyclone((*p1));
@@ -406,15 +418,16 @@ STC_DEF _cx_iter
_cx_memb(_find_in)(_cx_iter i1, _cx_iter i2, i_keyraw raw) {
for (; i1.ref != i2.ref; ++i1.ref) {
i_keyraw r = i_keyto(i1.ref);
- if (i_eq((&raw), (&r))) return i1;
+ if (i_eq((&raw), (&r)))
+ return i1;
}
return i2;
}
STC_DEF int
_cx_memb(_value_cmp)(const _cx_value* x, const _cx_value* y) {
- i_keyraw rx = i_keyto(x);
- i_keyraw ry = i_keyto(y);
+ const i_keyraw rx = i_keyto(x);
+ const i_keyraw ry = i_keyto(y);
return i_cmp((&rx), (&ry));
}
#endif // !c_no_cmp
diff --git a/include/stc/clist.h b/include/stc/clist.h
index 9b4560c7..654dc23b 100644
--- a/include/stc/clist.h
+++ b/include/stc/clist.h
@@ -233,14 +233,16 @@ _cx_memb(_push_node_back)(_cx_self* self, _cx_node* entry) {
STC_DEF _cx_value*
_cx_memb(_push_front)(_cx_self* self, i_key value) {
_c_clist_insert_after(self, _cx_self, self->last, value);
- if (!self->last) self->last = entry;
+ if (!self->last)
+ self->last = entry;
return &entry->value;
}
STC_DEF _cx_value*
_cx_memb(_push_node_front)(_cx_self* self, _cx_node* entry) {
_c_clist_insert_node_after(self, _cx_self, self->last, entry);
- if (!self->last) self->last = entry;
+ if (!self->last)
+ self->last = entry;
return &entry->value;
}
@@ -277,8 +279,10 @@ STC_DEF _cx_node*
_cx_memb(_erase_after_)(_cx_self* self, _cx_node* node) {
_cx_node* del = node->next, *next = del->next;
node->next = next;
- if (del == next) self->last = node = NULL;
- else if (self->last == del) self->last = node, node = NULL;
+ if (del == next)
+ self->last = node = NULL;
+ else if (self->last == del)
+ self->last = node, node = NULL;
i_keydrop((&del->value)); c_free(del);
return node;
}
@@ -300,11 +304,14 @@ _cx_memb(_splice)(_cx_self* self, _cx_iter it, _cx_self* other) {
STC_DEF _cx_self
_cx_memb(_split_off)(_cx_self* self, _cx_iter it1, _cx_iter it2) {
_cx_self cx = {NULL};
- if (it1.ref == it2.ref) return cx;
+ if (it1.ref == it2.ref)
+ return cx;
_cx_node *p1 = it1.prev,
*p2 = it2.ref ? it2.prev : self->last;
- p1->next = p2->next, p2->next = clist_node_(it1.ref);
- if (self->last == p2) self->last = (p1 == p2) ? NULL : p1;
+ p1->next = p2->next;
+ p2->next = clist_node_(it1.ref);
+ if (self->last == p2)
+ self->last = (p1 == p2) ? NULL : p1;
cx.last = p2;
return cx;
}
@@ -315,7 +322,8 @@ STC_DEF _cx_iter
_cx_memb(_find_in)(_cx_iter it1, _cx_iter it2, i_keyraw val) {
c_foreach (it, _cx_self, it1, it2) {
i_keyraw r = i_keyto(it.ref);
- if (i_eq((&r), (&val))) return it;
+ if (i_eq((&r), (&val)))
+ return it;
}
it2.ref = NULL; return it2;
}
@@ -348,7 +356,7 @@ _clist_mergesort(clist_VOID_node *list, int (*cmp)(const clist_VOID_node*, const
STC_DEF void
_cx_memb(_sort)(_cx_self* self) {
if (self->last)
- self->last = (_cx_node *) _clist_mergesort((clist_VOID_node *) self->last->next, _cx_memb(_sort_cmp_));
+ self->last = (_cx_node *)_clist_mergesort((clist_VOID_node *)self->last->next, _cx_memb(_sort_cmp_));
}
STC_DEF int
diff --git a/include/stc/cmap.h b/include/stc/cmap.h
index 0f5806c1..e66f60c0 100644
--- a/include/stc/cmap.h
+++ b/include/stc/cmap.h
@@ -321,7 +321,7 @@ _cx_memb(_bucket_)(const _cx_self* self, const _cx_rawkey* rkeyptr) {
const uint8_t* _hx = self->_hashx;
while (_hx[b.idx]) {
if (_hx[b.idx] == b.hx) {
- _cx_rawkey _raw = i_keyto(_i_keyref(self->table + b.idx));
+ const _cx_rawkey _raw = i_keyto(_i_keyref(self->table + b.idx));
if (i_eq((&_raw), rkeyptr))
break;
}
@@ -403,7 +403,7 @@ _cx_memb(_erase_entry)(_cx_self* self, _cx_value* _val) {
j = 0;
if (! _hashx[j])
break;
- _cx_rawkey _raw = i_keyto(_i_keyref(_slot + j));
+ const _cx_rawkey _raw = i_keyto(_i_keyref(_slot + j));
k = c_paste(fastrange_,i_size)(i_hash((&_raw)), _cap);
if ((j < i) ^ (k <= i) ^ (k > j)) /* is k outside (i, j]? */
_slot[i] = _slot[j], _hashx[i] = _hashx[j], i = j;
diff --git a/include/stc/cvec.h b/include/stc/cvec.h
index 180bff32..3ebed9b1 100644
--- a/include/stc/cvec.h
+++ b/include/stc/cvec.h
@@ -276,7 +276,8 @@ STC_DEF void
_cx_memb(_drop)(_cx_self* self) {
struct cvec_rep* rep = cvec_rep_(self);
// second test to supress gcc -O2 warn: -Wfree-nonheap-object
- if (rep->cap == 0 || rep == &_cvec_sentinel) return;
+ if (rep->cap == 0 || rep == &_cvec_sentinel)
+ return;
_cx_memb(_clear)(self);
c_free(rep);
}
@@ -288,7 +289,8 @@ _cx_memb(_reserve)(_cx_self* self, const size_t cap) {
if (cap > rep->cap || (cap && cap == len)) {
rep = (struct cvec_rep*) c_realloc(rep->cap ? rep : NULL,
offsetof(struct cvec_rep, data) + cap*sizeof(i_key));
- if (!rep) return false;
+ if (!rep)
+ return false;
self->data = (_cx_value*) rep->data;
rep->size = len;
rep->cap = cap;
@@ -301,9 +303,12 @@ _cx_memb(_resize)(_cx_self* self, const size_t len, i_key null) {
if (!_cx_memb(_reserve)(self, len)) return false;
struct cvec_rep *rep = cvec_rep_(self);
const size_t n = rep->size;
- for (size_t i = len; i < n; ++i) { i_keydrop((self->data + i)); }
- for (size_t i = n; i < len; ++i) self->data[i] = null;
- if (rep->cap) rep->size = len;
+ for (size_t i = len; i < n; ++i)
+ { i_keydrop((self->data + i)); }
+ for (size_t i = n; i < len; ++i)
+ self->data[i] = null;
+ if (rep->cap)
+ rep->size = len;
return true;
}
@@ -323,7 +328,8 @@ STC_DEF _cx_value*
_cx_memb(_expand_uninit_p)(_cx_self* self, _cx_value* pos, const size_t n) {
const size_t idx = pos - self->data;
struct cvec_rep* r = cvec_rep_(self);
- if (!n) return pos;
+ if (!n)
+ return pos;
if (r->size + n > r->cap) {
if (!_cx_memb(_reserve)(self, r->size*3/2 + n))
return NULL;
@@ -339,7 +345,8 @@ STC_DEF _cx_value*
_cx_memb(_insert_range_p)(_cx_self* self, _cx_value* pos,
const _cx_value* p1, const _cx_value* p2) {
pos = _cx_memb(_expand_uninit_p)(self, pos, p2 - p1);
- if (pos) memcpy(pos, p1, (p2 - p1)*sizeof *p1);
+ if (pos)
+ memcpy(pos, p1, (p2 - p1)*sizeof *p1);
return pos;
}
@@ -348,7 +355,8 @@ _cx_memb(_erase_range_p)(_cx_self* self, _cx_value* p1, _cx_value* p2) {
intptr_t len = p2 - p1;
if (len > 0) {
_cx_value* p = p1, *end = self->data + cvec_rep_(self)->size;
- for (; p != p2; ++p) { i_keydrop(p); }
+ for (; p != p2; ++p)
+ { i_keydrop(p); }
memmove(p1, p2, (end - p2) * sizeof(i_key));
cvec_rep_(self)->size -= len;
}
@@ -393,20 +401,24 @@ STC_DEF _cx_iter
_cx_memb(_find_in)(_cx_iter i1, _cx_iter i2, i_keyraw raw) {
for (; i1.ref != i2.ref; ++i1.ref) {
i_keyraw r = i_keyto(i1.ref);
- if (i_eq((&raw), (&r))) return i1;
+ if (i_eq((&raw), (&r)))
+ return i1;
}
return i2;
}
STC_DEF _cx_iter
-_cx_memb(_binary_search_in)(_cx_iter i1, _cx_iter i2, i_keyraw raw, _cx_iter* lower_bound) {
+_cx_memb(_binary_search_in)(_cx_iter i1, _cx_iter i2, const i_keyraw raw, _cx_iter* lower_bound) {
_cx_iter mid, last = i2;
while (i1.ref != i2.ref) {
mid.ref = i1.ref + ((i2.ref - i1.ref) >> 1);
- int c; i_keyraw m = i_keyto(mid.ref);
- if (!(c = i_cmp((&raw), (&m)))) return *lower_bound = mid;
- else if (c < 0) i2.ref = mid.ref;
- else i1.ref = mid.ref + 1;
+ int c; const i_keyraw m = i_keyto(mid.ref);
+ if (!(c = i_cmp((&raw), (&m))))
+ return *lower_bound = mid;
+ else if (c < 0)
+ i2.ref = mid.ref;
+ else
+ i1.ref = mid.ref + 1;
}
*lower_bound = i1;
return last;
@@ -414,8 +426,8 @@ _cx_memb(_binary_search_in)(_cx_iter i1, _cx_iter i2, i_keyraw raw, _cx_iter* lo
STC_DEF int
_cx_memb(_value_cmp)(const _cx_value* x, const _cx_value* y) {
- i_keyraw rx = i_keyto(x);
- i_keyraw ry = i_keyto(y);
+ const i_keyraw rx = i_keyto(x);
+ const i_keyraw ry = i_keyto(y);
return i_cmp((&rx), (&ry));
}
#endif // !c_no_cmp