Lines Matching refs:tab
40 hashfree(register Hash_table_t* tab)
53 if (!tab) return(0);
54 if (tab->table)
58 if (tab->root->local->free)
60 if (tab->root->flags & HASH_BUCKET) freebucket = tab->root->local->free;
61 else freevalue = tab->root->local->free;
63 if (region = tab->root->local->region)
64 handle = tab->root->local->handle;
65 sx = &tab->table[tab->size];
66 sp = &tab->table[0];
94 if ((tab->flags & (HASH_RESIZE|HASH_STATIC)) != HASH_STATIC)
96 if (region) (*region)(handle, tab->table, 0, 0);
97 else free(tab->table);
101 if (tab->root)
109 if ((tp = tab->root->references) != tab)
112 if (tp->next == tab)
114 tp->next = tab->next;
118 else if (!(tab->root->references = tp->next))
120 if ((rp = hash_info.list) != tab->root)
123 if (rp->next == tab->root)
125 rp->next = tab->root->next;
132 if (!(tab->root->references))
134 if (tab->root->local)
135 free(tab->root->local);
136 if (region) (*region)(handle, tab->root, 0, 0);
137 else free(tab->root);
140 if (tp = tab->scope) tp->frozen--;
141 if (region) (*region)(handle, tab, 0, 0);
142 else free(tab);