summaryrefslogtreecommitdiffstats
path: root/dive.c
diff options
context:
space:
mode:
Diffstat (limited to 'dive.c')
-rw-r--r--dive.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/dive.c b/dive.c
index 698bd00e9..d69aee355 100644
--- a/dive.c
+++ b/dive.c
@@ -1103,6 +1103,13 @@ struct dive *merge_dives(struct dive *a, struct dive *b, int offset, gboolean pr
merge_equipment(res, a, b);
if (dl) {
res->dc = dl->dc;
+ /*
+ * Since we copied the events and samples,
+ * we can't free them from the source when
+ * we free it - so make sure the source
+ * dive computer data is cleared out.
+ */
+ memset(&dl->dc, 0, sizeof(dl->dc));
} else {
merge_events(&res->dc, &a->dc, &b->dc, offset);
merge_samples(&res->dc, &a->dc, &b->dc, offset);