projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix regressions
[apps/madmutt.git]
/
hash.c
diff --git
a/hash.c
b/hash.c
index
0e2192b
..
ac9dc1c
100644
(file)
--- a/
hash.c
+++ b/
hash.c
@@
-15,6
+15,8
@@
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <string.h>
+#include <lib-lib/mem.h>
+
#include "mutt.h"
#include "lib/mem.h"
#include "mutt.h"
#include "lib/mem.h"
@@
-40,17
+42,17
@@
int hash_string (const unsigned char *s, int n)
HASH *hash_create (int nelem)
{
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;
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;
}
return table;
}
-HASH *hash_resize
(HASH *
ptr, int nelem)
+HASH *hash_resize
(HASH *
ptr, int nelem)
{
HASH *table;
struct hash_elem *elem, *tmp;
{
HASH *table;
struct hash_elem *elem, *tmp;
@@
-63,11
+65,11
@@
HASH *hash_resize (HASH * ptr, int nelem)
tmp = elem;
elem = elem->next;
hash_insert (table, tmp->key, tmp->data, 1);
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;
}
return table;
}
@@
-77,12
+79,12
@@
HASH *hash_resize (HASH * ptr, int nelem)
* data data to associate with `key'
* allow_dup if nonzero, duplicate keys are allowed in the table
*/
* data data to associate with `key'
* allow_dup if nonzero, duplicate keys are allowed in the table
*/
-int hash_insert (HASH * table, const char *key,
const
void *data, int allow_dup)
+int hash_insert (HASH * table, const char *key, void *data, int allow_dup)
{
struct hash_elem *ptr;
int h;
{
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;
h = hash_string ((unsigned char *) key, table->nelem);
ptr->key = key;
ptr->data = data;
@@
-99,7
+101,7
@@
int hash_insert (HASH * table, const char *key, const void *data, int allow_dup)
for (tmp = table->table[h], last = NULL; tmp; last = tmp, tmp = tmp->next) {
r = str_cmp (tmp->key, key);
if (r == 0) {
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)
return (-1);
}
if (r > 0)
@@
-137,7
+139,7
@@
void hash_delete_hash (HASH * table, int hash, const char *key, const void *data
*last = ptr->next;
if (destroy)
destroy (ptr->data);
*last = ptr->next;
if (destroy)
destroy (ptr->data);
-
mem_free
(&ptr);
+
p_delete
(&ptr);
ptr = *last;
} else {
ptr = *last;
} else {
@@
-162,11
+164,11
@@
void hash_destroy (HASH ** ptr, void (*destroy) (void *))
elem = elem->next;
if (destroy)
destroy (tmp->data);
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,
}
void hash_map (HASH* table, void (*mapfunc) (const char* key, void* data,