• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/bind9-45.101/bind9/lib/isccc/

Lines Matching refs:symtab

32 /* $Id: symtab.c,v 1.11 2007/09/13 04:45:18 each Exp $ */
46 #include <isccc/symtab.h>
77 isccc_symtab_t *symtab;
83 symtab = malloc(sizeof(*symtab));
84 if (symtab == NULL)
86 symtab->table = malloc(size * sizeof(eltlist_t));
87 if (symtab->table == NULL) {
88 free(symtab);
92 ISC_LIST_INIT(symtab->table[i]);
93 symtab->size = size;
94 symtab->undefine_action = undefine_action;
95 symtab->undefine_arg = undefine_arg;
96 symtab->case_sensitive = case_sensitive;
97 symtab->magic = SYMTAB_MAGIC;
99 *symtabp = symtab;
105 free_elt(isccc_symtab_t *symtab, unsigned int bucket, elt_t *elt) {
106 ISC_LIST_UNLINK(symtab->table[bucket], elt, link);
107 if (symtab->undefine_action != NULL)
108 (symtab->undefine_action)(elt->key, elt->type, elt->value,
109 symtab->undefine_arg);
115 isccc_symtab_t *symtab;
120 symtab = *symtabp;
121 REQUIRE(VALID_SYMTAB(symtab));
123 for (i = 0; i < symtab->size; i++) {
124 for (elt = ISC_LIST_HEAD(symtab->table[i]);
128 free_elt(symtab, i, elt);
131 free(symtab->table);
132 symtab->magic = 0;
133 free(symtab);
195 isccc_symtab_lookup(isccc_symtab_t *symtab, const char *key, unsigned int type,
201 REQUIRE(VALID_SYMTAB(symtab));
204 FIND(symtab, key, type, bucket, elt);
216 isccc_symtab_define(isccc_symtab_t *symtab, char *key, unsigned int type,
222 REQUIRE(VALID_SYMTAB(symtab));
226 FIND(symtab, key, type, bucket, elt);
232 ISC_LIST_UNLINK(symtab->table[bucket], elt, link);
233 if (symtab->undefine_action != NULL)
234 (symtab->undefine_action)(elt->key, elt->type,
236 symtab->undefine_arg);
251 ISC_LIST_PREPEND(symtab->table[bucket], elt, link);
257 isccc_symtab_undefine(isccc_symtab_t *symtab, const char *key, unsigned int type) {
261 REQUIRE(VALID_SYMTAB(symtab));
264 FIND(symtab, key, type, bucket, elt);
269 free_elt(symtab, bucket, elt);
275 isccc_symtab_foreach(isccc_symtab_t *symtab, isccc_symtabforeachaction_t action,
281 REQUIRE(VALID_SYMTAB(symtab));
284 for (i = 0; i < symtab->size; i++) {
285 for (elt = ISC_LIST_HEAD(symtab->table[i]);
290 free_elt(symtab, i, elt);