Skip to content

Commit

Permalink
Made purge method optional
Browse files Browse the repository at this point in the history
  • Loading branch information
finwo committed Mar 12, 2024
1 parent 8c34572 commit 9b0cde1
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/mindex.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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]);
Expand All @@ -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
Expand Down

0 comments on commit 9b0cde1

Please sign in to comment.