--- psiconv/trunk/lib/psiconv/list.c 2000/12/27 02:12:23 80 +++ psiconv/trunk/lib/psiconv/list.c 2002/01/29 18:38:38 142 @@ -27,6 +27,11 @@ #include "list.h" #include "error.h" +#ifdef DMALLOC +#include +#endif + + static int psiconv_list_resize(psiconv_list l,psiconv_u32 nr); struct psiconv_list_s { @@ -53,9 +58,8 @@ { if (l->max_len) free(l->els); - l->max_len = 0; - l->cur_len = 0; - l->els = NULL; + free(l); + l = NULL; } void psiconv_list_free_el(psiconv_list l, void free_el(void *el)) @@ -97,6 +101,15 @@ return 0; } +int psiconv_list_pop(psiconv_list l, void *el) +{ + if (! l->cur_len) + return -PSICONV_E_OTHER; + l->cur_len --; + memcpy(el,((char *)(l->els)) + l->cur_len * l->el_size,l->el_size); + return -PSICONV_E_OK; +} + int psiconv_list_replace(psiconv_list l, psiconv_u32 indx, const void *el) { if (indx >= l->cur_len)