summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sander Kleijwegt <sander@myowndomain.nl>2015-08-28 21:53:36 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-08-28 16:13:50 -0700
commit10d0604297ab70f7da5017bb754f73016b2efeb7 (patch)
tree2f1b5bd7cab152ce4ff52d3d1ca7fb9ec65d4879
parentd5aacd092dd7bb7dbe937c300071f6369a967a4c (diff)
downloadsubsurface-10d0604297ab70f7da5017bb754f73016b2efeb7.tar.gz
Fix crash when creating a dive site without any dives in logbook.
A divesite uuid is created using the timestamp of the currently selected dive. When there is no current_dive, use the current time to create a uuid. Signed-off-by: Sander Kleijwegt <sander@myowndomain.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/locationinformation.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp
index cce707772..8cd9e20be 100644
--- a/qt-ui/locationinformation.cpp
+++ b/qt-ui/locationinformation.cpp
@@ -238,7 +238,14 @@ void LocationManagementEditHelper::handleActivation(const QModelIndex& activated
/* if we are in 'recently added divesite mode, create a new divesite,
* and go to dive site edit edit mode. */
if (last_uuid == RECENTLY_ADDED_DIVESITE) {
- uint32_t ds_uuid = create_dive_site(qPrintable(activated.data().toString()), current_dive->when);
+ timestamp_t when;
+ if (current_dive != NULL) {
+ when = current_dive->when;
+ } else {
+ time_t now = time(0);
+ when = utc_mktime(localtime(&now));
+ }
+ uint32_t ds_uuid = create_dive_site(qPrintable(activated.data().toString()), when);
qDebug() << "ds_uuid" << ds_uuid;
struct dive_site *ds = get_dive_site_by_uuid(ds_uuid);
copy_dive_site(ds, &displayed_dive_site);