summaryrefslogtreecommitdiffstats
path: root/divelist.c
diff options
context:
space:
mode:
Diffstat (limited to 'divelist.c')
-rw-r--r--divelist.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/divelist.c b/divelist.c
index f1dd7006c..d57188a68 100644
--- a/divelist.c
+++ b/divelist.c
@@ -678,9 +678,9 @@ void add_dive_to_trip(struct dive *dive, dive_trip_t *trip)
dive_trip_t *create_and_hookup_trip_from_dive(struct dive *dive)
{
dive_trip_t *dive_trip = calloc(1, sizeof(dive_trip_t));
+
dive_trip->when = dive->when;
- if (dive->location)
- dive_trip->location = strdup(dive->location);
+ dive_trip->location = copy_string(get_dive_location(dive));
insert_trip(&dive_trip);
dive->tripflag = IN_TRIP;
@@ -713,8 +713,8 @@ void autogroup_dives(void)
if (lastdive && dive->when < lastdive->when + TRIP_THRESHOLD) {
dive_trip_t *trip = lastdive->divetrip;
add_dive_to_trip(dive, trip);
- if (dive->location && !trip->location)
- trip->location = strdup(dive->location);
+ if (get_dive_location(dive) && !trip->location)
+ trip->location = copy_string(get_dive_location(dive));
lastdive = dive;
continue;
}
@@ -745,7 +745,6 @@ void delete_single_dive(int idx)
dive_table.dives[--dive_table.nr] = NULL;
/* free all allocations */
free(dive->dc.sample);
- free((void *)dive->location);
free((void *)dive->notes);
free((void *)dive->divemaster);
free((void *)dive->buddy);