commit e6f6123e17f7518085f9ba2a9c8f9e77974c5666
parent c8ea3d1bfdb6af4c8c26c5a44c4a54f3a116cdae
Author: Robert Russell <robertrussell.72001@gmail.com>
Date: Wed, 14 Jun 2023 19:57:48 -0700
Move setting of dict defaults to separate header
This way the user of R_DICT_DECLARE/R_DICT_DEFINE can write
#include <rcx/dict-defaults.h>
and be confident they're not accidentally using an unwanted
setting from some other include.
Obviously, this should be extended to vectors and deques.
See the following commits.
Diffstat:
3 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
@@ -28,7 +28,7 @@ src/alloc.o: src/alloc.c inc/alloc.h inc/def.h inc/log.h inc/rcx.h inc/internal/
src/bench.o: src/bench.c inc/bench.h inc/def.h inc/log.h inc/rcx.h config.mk
src/buffer.o: src/buffer.c inc/alloc.h inc/buffer.h inc/debug.h inc/def.h inc/log.h inc/rcx.h inc/string.h config.mk
src/debug.o: src/debug.c inc/debug.h inc/def.h inc/rcx.h config.mk
-src/dict.o: src/dict.c inc/bits.h inc/debug.h inc/def.h inc/dict.h inc/internal/util.h inc/log.h inc/rand.h inc/rcx.h inc/string.h config.mk
+src/dict.o: src/dict.c inc/bits.h inc/debug.h inc/def.h inc/dict.h inc/dict-defaults.h inc/internal/util.h inc/log.h inc/rand.h inc/rcx.h inc/string.h config.mk
src/log.o: src/log.c inc/def.h inc/log.h inc/rcx.h config.mk
src/opt.o: src/opt.c inc/def.h inc/opt.h inc/rcx.h config.mk
src/rand.o: src/rand.c inc/bits.h inc/def.h inc/rand.h inc/rcx.h inc/unix.h config.mk
diff --git a/inc/dict-defaults.h b/inc/dict-defaults.h
@@ -0,0 +1,17 @@
+#undef R_DICT_STATIC
+#define R_DICT_STATIC
+
+#undef R_DICT_METHOD
+#define R_DICT_METHOD(name, prefix) JOIN(JOIN(prefix,_),name)
+
+#undef R_DICT_EQ
+#define R_DICT_EQ r_dict_mem_eq
+
+#undef R_DICT_HASH
+#define R_DICT_HASH r_dict_mem_hash
+
+#undef R_DICT_ALLOCZ
+#define R_DICT_ALLOCZ r_eallocz
+
+#undef R_DICT_FREE
+#define R_DICT_FREE free
diff --git a/inc/dict.h b/inc/dict.h
@@ -50,13 +50,7 @@ int r_dict_insert(RDict *d, void **v, void *k, u64 h, RDictSpec *s);
int r_dict_delete(RDict *d, void **v, void *k, u64 h, RDictSpec *s);
void r_dict_clear(RDict *d, RDictSpec *s);
-/* Defaults */
-#define R_DICT_STATIC
-#define R_DICT_METHOD(name, prefix) JOIN(JOIN(prefix,_),name)
-#define R_DICT_EQ r_dict_mem_eq
-#define R_DICT_HASH r_dict_mem_hash
-#define R_DICT_ALLOCZ r_eallocz
-#define R_DICT_FREE free
+#include "dict-defaults.h"
#define R_DICT_TYPEDEF(D, K, V)\
typedef struct D { \