rcx

library of miscellaneous bits of C code
git clone git://git.rr3.xyz/rcx
Log | Files | Refs | README | LICENSE

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:
MMakefile | 2+-
Ainc/dict-defaults.h | 17+++++++++++++++++
Minc/dict.h | 8+-------
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 { \