diff options
-rw-r--r-- | commands/command_divelist.cpp | 1 | ||||
-rw-r--r-- | core/divelist.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/commands/command_divelist.cpp b/commands/command_divelist.cpp index 8f6189c1e..fe59ecb6c 100644 --- a/commands/command_divelist.cpp +++ b/commands/command_divelist.cpp @@ -73,6 +73,7 @@ dive *DiveListBase::addDive(DiveToAdd &d) res->hidden_by_filter = true; int idx = dive_table_get_insertion_index(&dive_table, res); + fulltext_register(res); // Register the dive's fulltext cache add_to_dive_table(&dive_table, idx, res); // Return ownership to backend invalidate_dive_cache(res); // Ensure that dive is written in git_save() diff --git a/core/divelist.c b/core/divelist.c index 750eb42db..994170570 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -753,6 +753,9 @@ struct dive *unregister_dive(int idx) struct dive *dive = get_dive(idx); if (!dive) return NULL; /* this should never happen */ + /* When removing a dive from the global dive table, + * we also have to unregister its fulltext cache. */ + fulltext_unregister(dive); remove_from_dive_table(&dive_table, idx); if (dive->selected) amount_selected--; |