projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
parser: extern var support
[m6w6/ext-psi]
/
src
/
plist.c
diff --git
a/src/plist.c
b/src/plist.c
index 25f6676ca9a2c110f6bb5a0800f2f59c81901d69..1a69fc1722c7b650a42500a8ac369962d08a534b 100644
(file)
--- 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;
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) {
}
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 *))
}
struct psi_plist *psi_plist_copy(struct psi_plist *list, void (*ctor)(void *))