X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fplist.c;h=1a69fc1722c7b650a42500a8ac369962d08a534b;hp=25f6676ca9a2c110f6bb5a0800f2f59c81901d69;hb=cffcbdd1df9f6d5dcf78f49a3d1b44cefe21b2f5;hpb=ba906e039ffe9e57842ce5135aa43efa00b8a4c6 diff --git a/src/plist.c b/src/plist.c index 25f6676..1a69fc1 100644 --- a/src/plist.c +++ b/src/plist.c @@ -69,15 +69,19 @@ struct psi_plist *psi_plist_init_ex(size_t size, void (*dtor)(void *)) { void psi_plist_clean(struct psi_plist *list) { size_t i; - if (list->dtor) for (i = 0; i < list->count; ++i) { - list->dtor(PLIST_ELE(list, i)); + if (list) { + if (list->dtor) for (i = 0; i < list->count; ++i) { + list->dtor(PLIST_ELE(list, i)); + } + list->count = 0; } - list->count = 0; } void psi_plist_free(struct psi_plist *list) { - psi_plist_clean(list); - free(list); + if (list) { + psi_plist_clean(list); + free(list); + } } struct psi_plist *psi_plist_copy(struct psi_plist *list, void (*ctor)(void *))