diff options
Diffstat (limited to 'divelist.c')
-rw-r--r-- | divelist.c | 9 |
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); |