commit 9b0cde1ece9c69937752afe00fa6c5cc6e1ed40c
parent 8c34572ffe564cfa1b940aaf5e1a0c56e84ebba1
Author: Yersa Nordman <finwo@pm.me>
Date: Tue, 12 Mar 2024 23:26:05 +0100
Made purge method optional
Diffstat:
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/mindex.c b/src/mindex.c
@@ -123,7 +123,7 @@ void mindex_set(struct mindex_t *mindex, void *item) {
// Item already in there, notify we skipped insertion
if (resp->signal & mindex_signal_found) {
mindex->items[resp->index] = item;
- mindex->purge(resp->value, mindex->udata);
+ if (mindex->purge) mindex->purge(resp->value, mindex->udata);
free(resp);
return;
}
@@ -171,7 +171,7 @@ void mindex_delete(struct mindex_t *mindex, void *pattern) {
// Call user's purge method
void *item = mindex->items[resp->index];
- mindex->purge(item, mindex->udata);
+ if (mindex->purge) mindex->purge(item, mindex->udata);
// Move everything on it's right to it
void *dst = &(mindex->items[resp->index]);
@@ -195,8 +195,10 @@ void mindex_free(struct mindex_t *mindex) {
// Step 1, purge all entries
int i;
- for (i=0; i < mindex->length; i++) {
- mindex->purge(mindex->items[i], mindex->udata);
+ if (mindex->purge) {
+ for (i=0; i < mindex->length; i++) {
+ mindex->purge(mindex->items[i], mindex->udata);
+ }
}
// Step 2, free the list