X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib%2Flist.c;h=efa4c98b73bacd51b7e7f6bd95823596473b5674;hb=49f1156410e9a037404101696d37b2c0d5c67564;hp=1dd865ffcc28e2a4717c4ae9d93c736b3323cb00;hpb=07449b789713bd8716a02214f536dfd72f3549b1;p=apps%2Fmadmutt.git diff --git a/lib/list.c b/lib/list.c index 1dd865f..efa4c98 100644 --- a/lib/list.c +++ b/lib/list.c @@ -10,13 +10,15 @@ #include #include +#include + #include "list.h" #include "mem.h" #include "str.h" list2_t* list_new (void) { - return (mem_calloc (1, sizeof (list2_t))); + return p_new(list2_t, 1); } void list_del (list2_t** l, list_del_t* del) { @@ -26,8 +28,8 @@ void list_del (list2_t** l, list_del_t* del) { if (del) for (i = 0; i < (*l)->length; i++) del (&(*l)->data[i]); - mem_free(&(*l)->data); - mem_free(l); + p_delete(&(*l)->data); + p_delete(l); } void list_push_back (list2_t** l, void* p) { @@ -77,15 +79,14 @@ void* list_pop_idx (list2_t* l, int c) { return (p); } -list2_t* list_cpy (list2_t* l) { - list2_t* ret = NULL; - if (list_empty(l)) - return (NULL); - ret = list_new (); - ret->length = l->length; - ret->data = mem_malloc (l->length*sizeof(void*)); - memcpy (ret->data, l->data, l->length*sizeof(void*)); - return (ret); +list2_t *list_cpy(list2_t *l) { + list2_t* ret = NULL; + if (list_empty(l)) + return NULL; + ret = list_new(); + ret->length = l->length; + ret->data = p_dup(l->data, l->length); + return ret; } list2_t* list_dup (list2_t* l, void* (*dup) (void*)) { @@ -95,7 +96,7 @@ list2_t* list_dup (list2_t* l, void* (*dup) (void*)) { return (NULL); ret = list_new (); ret->length = l->length; - ret->data = mem_malloc (l->length*sizeof(void*)); + ret->data = p_new(void*, l->length); for (i = 0; i < l->length; i++) ret->data[i] = dup (l->data[i]); return (ret); @@ -122,7 +123,7 @@ list2_t* list_from_str (const char* str, const char* delim) { for (p = strtok (tmp, delim); p; p = strtok (NULL, delim)) { list_push_back (&ret, str_dup (p)); } - mem_free (&tmp); + p_delete(&tmp); return (ret); }