aboutsummaryrefslogtreecommitdiff
path: root/trie.h
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-02-04 11:25:37 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-02-05 18:06:13 +0100
commitdc8474d9034d9281463bb69f7f7a922e3ea713ee (patch)
treec3b870ada88f7aaa48918c4eb8b5d865f2f82019 /trie.h
parentWork on propper memmory management for linked lists. (diff)
downloadcalp-dc8474d9034d9281463bb69f7f7a922e3ea713ee.tar.gz
calp-dc8474d9034d9281463bb69f7f7a922e3ea713ee.tar.xz
Normalize and improve INIT & FREE macros.
Diffstat (limited to 'trie.h')
-rw-r--r--trie.h18
1 files changed, 7 insertions, 11 deletions
diff --git a/trie.h b/trie.h
index 20b08ec9..4fe26df5 100644
--- a/trie.h
+++ b/trie.h
@@ -8,12 +8,6 @@
#define TRIE(T) TP(trie__, T)
#define TRIE_NODE(T) TP(trie_node__, T)
-#define TRIE_INIT(T) CONSTRUCTOR_GEN(trie, T, 0)
-#define TRIE_NODE_INIT(T) CONSTRUCTOR_GEN(trie_node, T, 0)
-
-#define TRIE_FREE(T) TP(trie_free__, T)
-#define TRIE_NODE_FREE(T) TP(trie_node_free__, T)
-
#define TRIE_PUT(T) TP(trie_put__, T)
#define TRIE_GET(T) TP(trie_get__, T)
@@ -35,20 +29,22 @@ typedef struct {
} TRIE(TYPE);
-int CONSTRUCTOR_DECL ( TRIE(TYPE) );
+INIT_F ( TRIE(TYPE) );
-int CONSTRUCTOR_DECL (TRIE_NODE(TYPE), char c);
+INIT_F (TRIE_NODE(TYPE), char c);
-int CONSTRUCTOR_DECL (TRIE_NODE(TYPE),
+INIT_F (TRIE_NODE(TYPE),
char c, TRIE_NODE(TYPE)* next, TRIE_NODE(TYPE)* child );
int TRIE_PUT(TYPE) ( TRIE(TYPE)* trie, char* key, TYPE* val );
TYPE* TRIE_GET(TYPE) ( TRIE(TYPE)* trie, char* key );
-int TRIE_NODE_FREE(TYPE) ( TRIE_NODE(TYPE)* node );
+// int TRIE_NODE_FREE(TYPE) ( TRIE_NODE(TYPE)* node );
+FREE_F(TRIE_NODE(TYPE));
-int TRIE_FREE(TYPE) ( TRIE(TYPE)* trie );
+// int TRIE_FREE(TYPE) ( TRIE(TYPE)* trie );
+FREE_F(TRIE(TYPE));
int TRIE_DOT(TYPE) ( TRIE(TYPE)*, FILE* );
int TRIE_DOT_HELP(TYPE) ( TRIE_NODE(TYPE)*, FILE* );