From: Mark Wooding Date: Sun, 30 Mar 2025 20:29:08 +0000 (+0100) Subject: chain.c: Hoist definitions of `WORDPTR' and `WORDLEN'. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/wordchain/commitdiff_plain/974de001cedf500bcdb69f5b168dd6680ae7651a chain.c: Hoist definitions of `WORDPTR' and `WORDLEN'. --- diff --git a/chain.c b/chain.c index 6933feb..f37f1bd 100644 --- a/chain.c +++ b/chain.c @@ -184,12 +184,16 @@ struct node { TREE_NODEPFX; #elif TREE == MLIB_SYM struct sym_base _s; +# define WORDPTR(node) (SYM_NAME(node)) +# define WORDLEN(node) (SYM_LEN(node)) #endif #if TREE == MLIB_SYM || (USE_QPTRIE && QPTRIE_ITER == QPITER_LIST) struct node *next; #endif #if TREE != MLIB_SYM struct word w; +# define WORDPTR(node) ((node)->w.p) +# define WORDLEN(node) ((node)->w.n) #endif struct node *down, *right, *up; short len; @@ -544,9 +548,6 @@ static void free_node(void *n, void *arg) { free(n); } # define FOCUS do ; while (0) -# define WORDPTR(node) (SYM_NAME(node)) -# define WORDLEN(node) (SYM_LEN(node)) - # define LOOKUP sym_find(&tab, word.p, word.n, 0, 0) # define FREE do { sym_destroy(&tab); } while (0) @@ -564,14 +565,6 @@ static void free_node(void *n, void *arg) { free(n); } } while (0) #endif -#ifndef WORDPTR -# define WORDPTR(node) ((node)->w.p) -#endif - -#ifndef WORDLEN -# define WORDLEN(node) ((node)->w.n) -#endif - #ifndef GETPREFIX # define GETPREFIX do { \ word.p = WORDPTR(node); word.n = WORDLEN(node) - 1; \