summaryrefslogtreecommitdiffstats
path: root/dive.c
diff options
context:
space:
mode:
Diffstat (limited to 'dive.c')
-rw-r--r--dive.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/dive.c b/dive.c
index e054be557..1280b7cf4 100644
--- a/dive.c
+++ b/dive.c
@@ -1397,6 +1397,17 @@ static struct divecomputer *find_matching_computer(struct divecomputer *match, s
return p;
}
+
+static void copy_dive_computer(struct divecomputer *res, struct divecomputer *a)
+{
+ *res = *a;
+ res->model = a->model ? strdup(a->model) : NULL;
+ res->samples = res->alloc_samples = 0;
+ res->sample = NULL;
+ res->events = NULL;
+ res->next = NULL;
+}
+
/*
* Join dive computers with a specific time offset between
* them.
@@ -1411,9 +1422,7 @@ static void interleave_dive_computers(struct divecomputer *res,
do {
struct divecomputer *match;
- *res = *a;
- res->model = a->model ? strdup(a->model) : NULL;
- res->next = NULL;
+ copy_dive_computer(res, a);
match = find_matching_computer(a, b);
if (match) {