mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Planner: don't do unnecessary work on empty dive plans
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
b791b41db9
commit
65f3135a92
3 changed files with 18 additions and 1 deletions
14
planner.c
14
planner.c
|
@ -49,6 +49,20 @@ void dump_plan(struct diveplan *diveplan)
|
|||
}
|
||||
#endif
|
||||
|
||||
bool diveplan_empty(struct diveplan *diveplan)
|
||||
{
|
||||
struct divedatapoint *dp;
|
||||
if (!diveplan || !diveplan->dp)
|
||||
return true;
|
||||
dp = diveplan->dp;
|
||||
while(dp) {
|
||||
if (dp->time)
|
||||
return false;
|
||||
dp = dp->next;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void set_last_stop(bool last_stop_6m)
|
||||
{
|
||||
if (last_stop_6m == true)
|
||||
|
|
|
@ -13,6 +13,7 @@ extern void show_planned_dive(char **error_string_p);
|
|||
extern void set_last_stop(bool last_stop_6m);
|
||||
extern void get_gas_from_events(struct divecomputer *dc, int time, int *o2, int *he);
|
||||
extern int get_gasidx(struct dive *dive, int o2, int he);
|
||||
extern bool diveplan_empty(struct diveplan *diveplan);
|
||||
|
||||
extern struct dive *planned_dive;
|
||||
extern char *cache_data;
|
||||
|
|
|
@ -777,6 +777,8 @@ void DivePlannerPointsModel::addDecoToModel()
|
|||
{
|
||||
struct divedatapoint *dp;
|
||||
|
||||
if (diveplan_empty(&diveplan))
|
||||
return;
|
||||
bool oldRecalc = plannerModel->setRecalc(false);
|
||||
plannerModel->removeDeco();
|
||||
|
||||
|
@ -832,7 +834,7 @@ void DivePlannerPointsModel::createTemporaryPlan()
|
|||
#if DEBUG_PLAN
|
||||
dump_plan(&diveplan);
|
||||
#endif
|
||||
if (plannerModel->recalcQ()) {
|
||||
if (plannerModel->recalcQ() && !diveplan_empty(&diveplan)) {
|
||||
plan(&diveplan, &cache, &tempDive, stagingDive, isPlanner());
|
||||
addDecoToModel();
|
||||
if (mode == ADD || mode == PLAN) {
|
||||
|
|
Loading…
Add table
Reference in a new issue