#include <stdio.h>
#include <string.h>
+#include <lib-lib/mem.h>
+
#include "mutt.h"
#include "lib/mem.h"
HASH *hash_create (int nelem)
{
- HASH *table = mem_malloc (sizeof (HASH));
+ HASH *table = p_new(HASH, 1);
if (nelem == 0)
nelem = 2;
table->nelem = nelem;
table->curnelem = 0;
- table->table = mem_calloc (nelem, sizeof (struct hash_elem *));
+ table->table = p_new(struct hash_elem *, nelem);
return table;
}
-HASH *hash_resize (HASH * ptr, int nelem)
+HASH *hash_resize(HASH *ptr, int nelem)
{
HASH *table;
struct hash_elem *elem, *tmp;
tmp = elem;
elem = elem->next;
hash_insert (table, tmp->key, tmp->data, 1);
- mem_free (&tmp);
+ p_delete(&tmp);
}
}
- mem_free (&ptr->table);
- mem_free (&ptr);
+ p_delete(&ptr->table);
+ p_delete(&ptr);
return table;
}
struct hash_elem *ptr;
int h;
- ptr = (struct hash_elem *) mem_malloc (sizeof (struct hash_elem));
+ ptr = p_new(struct hash_elem, 1);
h = hash_string ((unsigned char *) key, table->nelem);
ptr->key = key;
ptr->data = data;
for (tmp = table->table[h], last = NULL; tmp; last = tmp, tmp = tmp->next) {
r = str_cmp (tmp->key, key);
if (r == 0) {
- mem_free (&ptr);
+ p_delete(&ptr);
return (-1);
}
if (r > 0)
*last = ptr->next;
if (destroy)
destroy (ptr->data);
- mem_free (&ptr);
+ p_delete(&ptr);
ptr = *last;
} else {
elem = elem->next;
if (destroy)
destroy (tmp->data);
- mem_free (&tmp);
+ p_delete(&tmp);
}
}
- mem_free (&pptr->table);
- mem_free (ptr);
+ p_delete(&pptr->table);
+ p_delete(ptr);
}
void hash_map (HASH* table, void (*mapfunc) (const char* key, void* data,