aboutsummaryrefslogtreecommitdiff
path: root/src/ds
diff options
context:
space:
mode:
Diffstat (limited to 'src/ds')
-rw-r--r--src/ds/array.c27
-rw-r--r--src/ds/hashmap.c11
2 files changed, 24 insertions, 14 deletions
diff --git a/src/ds/array.c b/src/ds/array.c
index 3d0baa3..21d8be5 100644
--- a/src/ds/array.c
+++ b/src/ds/array.c
@@ -41,15 +41,13 @@ static void *expand(void *arr, size_t min_cap, size_t el_size) {
return hdr2arr(hdr);
}
-// clang-format off
// init array if it's not, define arr, hdr vars and expand to fit min_cap
-#define ini(min_cap) \
- !*(void**)p_arr ? *(void **)p_arr = init(init_cap, el_size) : 0; \
- Header *hdr = arr2hdr(*(void**)p_arr); \
- *(void **)p_arr = expand(*(void**)p_arr, min_cap, el_size); \
- void *arr = *(void **)p_arr; \
+#define ini(min_cap) \
+ !*(void **)p_arr ? *(void **)p_arr = init(init_cap, el_size) : 0; \
+ Header *hdr = arr2hdr(*(void **)p_arr); \
+ *(void **)p_arr = expand(*(void **)p_arr, min_cap, el_size); \
+ void *arr = *(void **)p_arr; \
hdr = arr2hdr(arr)
-// clang-format on
void mos_arr_append_fn(void *p_arr, size_t el_size, size_t init_cap) {
ini(hdr->len + 1);
@@ -70,7 +68,8 @@ void mos_arr_put_fn(void *p_arr, size_t i, size_t el_size, size_t init_cap) {
}
}
-size_t mos_arr_append_n_fn(void *p_arr, const void *items, size_t n, size_t el_size, size_t init_cap) {
+size_t
+mos_arr_append_n_fn(void *p_arr, const void *items, size_t n, size_t el_size, size_t init_cap) {
ini(hdr->len + n);
size_t i = hdr->len;
@@ -79,7 +78,9 @@ size_t mos_arr_append_n_fn(void *p_arr, const void *items, size_t n, size_t el_s
return i;
}
-size_t mos_arr_insert_n_fn(void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap) {
+size_t mos_arr_insert_n_fn(
+ void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap
+) {
ini(hdr->len + n);
if (i >= hdr->len)
return mos_arr_append_n_fn(p_arr, items, n, el_size, init_cap);
@@ -90,7 +91,9 @@ size_t mos_arr_insert_n_fn(void *p_arr, size_t i, const void *items, size_t n, s
return i;
}
-size_t mos_arr_put_n_fn(void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap) {
+size_t mos_arr_put_n_fn(
+ void *p_arr, size_t i, const void *items, size_t n, size_t el_size, size_t init_cap
+) {
ini(i + n + 1);
if (i > hdr->len) {
memset((char *)arr + hdr->len * el_size, 0, (i - hdr->len) * el_size);
@@ -123,7 +126,9 @@ size_t mos_arr_del_n_fn(void *arr, size_t i, size_t n, size_t el_size) {
return 0;
size_t new_n = n > hdr->len - i ? hdr->len - i : n;
- memmove((char *)arr + i * el_size, (char *)arr + (i + new_n) * el_size, (hdr->len - i) * el_size);
+ memmove(
+ (char *)arr + i * el_size, (char *)arr + (i + new_n) * el_size, (hdr->len - i) * el_size
+ );
hdr->len -= new_n;
return new_n;
}
diff --git a/src/ds/hashmap.c b/src/ds/hashmap.c
index 2b74b35..a983fc2 100644
--- a/src/ds/hashmap.c
+++ b/src/ds/hashmap.c
@@ -139,7 +139,9 @@ void *mos_hm_new_fn(MosHmNewArgs args) {
return hdr2hm(hdr);
}
-static size_t probe(const void *hm, const void *key, size_t entry_size, size_t key_size, size_t key_off, int put) {
+static size_t probe(
+ const void *hm, const void *key, size_t entry_size, size_t key_size, size_t key_off, int put
+) {
Header *hdr = hm2hdr(hm);
uint32_t hash = hdr->hash ? hdr->hash(key) : default_hash(key, key_size);
size_t i = hash % hdr->cap;
@@ -161,7 +163,8 @@ static size_t probe(const void *hm, const void *key, size_t entry_size, size_t k
exit(EXIT_FAILURE);
}
-static void rehash(void *p_hm, size_t entry_size, size_t key_size, size_t key_off, uint8_t load_factor) {
+static void
+rehash(void *p_hm, size_t entry_size, size_t key_size, size_t key_off, uint8_t load_factor) {
void *hm = *(void **)p_hm;
Header *hdr = hm2hdr(hm);
size_t size = mos_hm_size(hm);
@@ -243,7 +246,9 @@ void *mos_hm_get_e_fn(void *hm, void *key, size_t entry_size, size_t key_size) {
return (char *)hm + (i + 1) * entry_size;
}
-int mos_hm_del_fn(void *p_hm, void *key, size_t entry_size, size_t key_size, uint8_t load_factor, int reh) {
+int mos_hm_del_fn(
+ void *p_hm, void *key, size_t entry_size, size_t key_size, uint8_t load_factor, int reh
+) {
void *hm = *(void **)p_hm;
Header *hdr = hm2hdr(hm);
size_t key_off = (char *)key - (char *)hm;