Lines Matching refs:ptr
43 void *ptr); /* And key */
71 _search(Hashtab * htab, void *ptr)
75 assert(htab && ptr);
77 for (hptr = htab->tab[(*htab->hash) (ptr) % htab->sz];
80 if ((*htab->cmp) (ptr, hptr->ptr) == 0)
88 hashtabsearch(Hashtab * htab, void *ptr)
92 tmp = _search(htab, ptr);
93 return tmp ? tmp->ptr : tmp;
101 hashtabadd(Hashtab * htab, void *ptr)
103 Hashentry *h = _search(htab, ptr);
106 assert(htab && ptr);
109 free((void *) h->ptr);
115 tabptr = &htab->tab[(*htab->hash) (ptr) % htab->sz];
122 h->ptr = ptr;
126 /* delete element with key key. Iff freep, free Hashentry->ptr */
129 _hashtabdel(Hashtab * htab, void *ptr, int freep)
133 assert(htab && ptr);
135 h = _search(htab, ptr);
138 free(h->ptr);
150 hashtabforeach(Hashtab * htab, int (*func) (void *ptr, void *arg),
159 if ((*func) (g->ptr, arg))