From 06730c58577bc984e3ab7bf656b61382d763efef Mon Sep 17 00:00:00 2001 From: Tyge Date: Thu, 30 Apr 2020 20:14:30 +0200 Subject: Added missing #include , and redefined default equal. --- stc/cdefs.h | 5 +++-- stc/cmap.h | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/stc/cdefs.h b/stc/cdefs.h index 249089fa..5831e948 100644 --- a/stc/cdefs.h +++ b/stc/cdefs.h @@ -61,9 +61,10 @@ #define c_defaultInitRaw(x) (x) #define c_defaultGetRaw(ptr) (*(ptr)) -#define c_noCompare(x, y) (0) #define c_defaultCompare(x, y) (*(x) == *(y) ? 0 : *(x) < *(y) ? -1 : 1) -#define c_defaultEquals(x, y) (memcmp(x, y, sizeof(*(y))) == 0) +#define c_noCompare(x, y) (0) +#define c_defaultEquals(x, y) (*(x) == *(y)) +#define c_memEquals(x, y) (memcmp(x, y, sizeof(*(y))) == 0) #define c_noDestroy(p) ((void)0) #define c_foreach(it, prefix, container) \ diff --git a/stc/cmap.h b/stc/cmap.h index 96144e64..095b9210 100644 --- a/stc/cmap.h +++ b/stc/cmap.h @@ -42,6 +42,7 @@ int main(void) { #ifndef CMAP__H__ #define CMAP__H__ +#include #include "cdefs.h" #define cmap_init {NULL, NULL, 0, 0, 90, 0} @@ -297,15 +298,15 @@ cmap_##tag##_erase(CMap_##tag* self, cmap_##tag##_rawkey_t rawKey) { \ size_t i = cmap_##tag##_bucket(self, &rawKey, &hx), j = i, k; \ CMapEntry_##tag* slot = self->_table; \ uint8_t* hashx = self->_hashx; \ + cmap_##tag##_rawkey_t r; \ if (! hashx[i]) \ return false; \ - cmap_##tag##_rawkey_t r; \ do { /* deletion from hash table without tombstone */ \ if (++j == cap) j = 0; /* ++j %= cap; is slow */ \ if (! hashx[j]) \ break; \ - k = cmap_reduce(keyHashRaw((r = keyGetRaw(&slot[j].key), &r), \ - sizeof(cmap_##tag##_rawkey_t)), cap); \ + r = keyGetRaw(&slot[j].key); \ + k = cmap_reduce(keyHashRaw(&r, sizeof(cmap_##tag##_rawkey_t)), cap); \ if ((j < i) ^ (k <= i) ^ (k > j)) /* is k outside (i, j]? */ \ slot[i] = slot[j], hashx[i] = hashx[j], i = j; \ } while (true); \ -- cgit v1.2.3