From 71518fa77e1cf22fa3aefd3f997481368065909e Mon Sep 17 00:00:00 2001 From: Berthold Stoeger Date: Sun, 2 Jun 2024 00:36:20 +0200 Subject: [PATCH] core: make get_trip_by_uniq_id a member of trip_table Don't access the global trip_table in an attempt to cut down on implicit accesses of global variables. Signed-off-by: Berthold Stoeger --- core/trip.cpp | 7 +++---- core/trip.h | 2 +- mobile-widgets/qmlmanager.cpp | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/trip.cpp b/core/trip.cpp index a10c59b7b..ac748dd8e 100644 --- a/core/trip.cpp +++ b/core/trip.cpp @@ -138,11 +138,10 @@ std::pair> get_trip_for_new_dive(const s } /* lookup of trip in main trip_table based on its id */ -dive_trip *get_trip_by_uniq_id(int tripId) +dive_trip *trip_table::get_by_uniq_id(int tripId) const { - auto it = std::find_if(divelog.trips->begin(), divelog.trips->end(), - [tripId](auto &t) { return t->id == tripId; }); - return it != divelog.trips->end() ? it->get() : nullptr; + auto it = std::find_if(begin(), end(), [tripId](auto &t) { return t->id == tripId; }); + return it != end() ? it->get() : nullptr; } /* Check if two trips overlap time-wise up to trip threshold. */ diff --git a/core/trip.h b/core/trip.h index 51c5a798c..6a48cf328 100644 --- a/core/trip.h +++ b/core/trip.h @@ -25,6 +25,7 @@ struct dive_trip int comp_trips(const dive_trip &t1, const dive_trip &t2); struct trip_table : public sorted_owning_table { + dive_trip *get_by_uniq_id(int tripId) const; }; extern void add_dive_to_trip(struct dive *, dive_trip *); @@ -45,7 +46,6 @@ struct dives_to_autogroup_result { extern std::vector get_dives_to_autogroup(struct dive_table *table); extern std::pair> get_trip_for_new_dive(const struct dive *new_dive); -extern dive_trip *get_trip_by_uniq_id(int tripId); extern bool trips_overlap(const struct dive_trip &t1, const struct dive_trip &t2); extern std::unique_ptr combine_trips(struct dive_trip *trip_a, struct dive_trip *trip_b); diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 54f39e08a..ac5bba6d0 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -1369,7 +1369,7 @@ void QMLManager::commitChanges(QString diveId, QString number, QString date, QSt void QMLManager::updateTripDetails(QString tripIdString, QString tripLocation, QString tripNotes) { int tripId = tripIdString.toInt(); - dive_trip *trip = get_trip_by_uniq_id(tripId); + dive_trip *trip = divelog.trips->get_by_uniq_id(tripId); if (!trip) { report_info("updateTripData: cannot find trip for tripId %s", qPrintable(tripIdString)); return; @@ -1428,7 +1428,7 @@ void QMLManager::addDiveToTrip(int id, int tripId) appendTextToLog(QString("Asked to add non-existing dive with id %1 to trip %2.").arg(id).arg(tripId)); return; } - struct dive_trip *dt = get_trip_by_uniq_id(tripId); + struct dive_trip *dt = divelog.trips->get_by_uniq_id(tripId); if (!dt) { appendTextToLog(QString("Asked to add dive with id %1 to trip with id %2 which cannot be found.").arg(id).arg(tripId)); return;