aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorGravatar Jan Mulder <jlmulder@xs4all.nl>2017-12-19 13:13:06 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-12-19 05:13:23 -0800
commit8c77c15dd877cc75c09616b8280fa1ae2095f5fb (patch)
treea85f726f1137523a9e541b4d187e644b4ce016a8 /core
parent8633577a45a0eac7daec5cdb1e16bebc73976b11 (diff)
downloadsubsurface-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')
-rw-r--r--core/divesite.c1
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);
}
}