From 0232d9f3f6206305662cb9163fdb23372ab6b227 Mon Sep 17 00:00:00 2001 From: Tyge Lovset Date: Fri, 13 May 2022 01:21:39 +0200 Subject: constness and code formatting. --- examples/ex_gauss1.c | 7 ++----- include/stc/cdeq.h | 51 ++++++++++++++++++++++++++++++++------------------- include/stc/clist.h | 26 +++++++++++++++++--------- include/stc/cmap.h | 4 ++-- include/stc/cvec.h | 44 ++++++++++++++++++++++++++++---------------- 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 // 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 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 -- cgit v1.2.3