diff options
| author | Tyge <[email protected]> | 2020-04-30 20:14:30 +0200 |
|---|---|---|
| committer | Tyge <[email protected]> | 2020-04-30 20:14:30 +0200 |
| commit | 06730c58577bc984e3ab7bf656b61382d763efef (patch) | |
| tree | b06ba668580e8308262bae5c33230690366d98f3 | |
| parent | 5ff4f6aa3327b8ab403f51dd5499a4ece6a97aca (diff) | |
| download | STC-modified-06730c58577bc984e3ab7bf656b61382d763efef.tar.gz STC-modified-06730c58577bc984e3ab7bf656b61382d763efef.zip | |
Added missing #include <malloc.h>, and redefined default equal.
| -rw-r--r-- | stc/cdefs.h | 5 | ||||
| -rw-r--r-- | 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) \
@@ -42,6 +42,7 @@ int main(void) { #ifndef CMAP__H__
#define CMAP__H__
+#include <malloc.h>
#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); \
|
