diff options
author | Jan Mulder <jlmulder@xs4all.nl> | 2017-12-19 13:13:06 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-12-19 05:13:23 -0800 |
commit | 8c77c15dd877cc75c09616b8280fa1ae2095f5fb (patch) | |
tree | a85f726f1137523a9e541b4d187e644b4ce016a8 /core/divesite.c | |
parent | 8633577a45a0eac7daec5cdb1e16bebc73976b11 (diff) | |
download | subsurface-8c77c15dd877cc75c09616b8280fa1ae2095f5fb.tar.gz |
git storage: invalidate cache on merge dive site
In hindsight a very simple bug to fix, but it requires some
knowledge on the inner workings of our git storage. The changes
on merge of dive sites were simply not saved (completely) because
the git storage code has a cache that we need to invalidate
selectively (ie. for the dive we just gave a new dive site uuid)
to get things finally embedded in the overall commit.
The main reason this bug went unnoticed for more than 2 years is
that most people use the XML/SSRF format (where this problem is
non exsistent), and dive site merging is probably not a very
much used feature either.
Fixes: #939
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Diffstat (limited to 'core/divesite.c')
-rw-r--r-- | core/divesite.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/core/divesite.c b/core/divesite.c index 3d5547905..e4ba71abb 100644 --- a/core/divesite.c +++ b/core/divesite.c @@ -336,6 +336,7 @@ void merge_dive_sites(uint32_t ref, uint32_t* uuids, int count) if (d->dive_site_uuid != uuids[i] ) continue; d->dive_site_uuid = ref; + invalidate_dive_cache(d); } } |