From 10d0604297ab70f7da5017bb754f73016b2efeb7 Mon Sep 17 00:00:00 2001 From: Sander Kleijwegt Date: Fri, 28 Aug 2015 21:53:36 +0200 Subject: 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 Signed-off-by: Dirk Hohndel --- qt-ui/locationinformation.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'qt-ui') 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); -- cgit v1.2.3-70-g09d2