Check order indexing and consistency in cache check

This commit is contained in:
Jonathan G Rennison
2019-05-02 03:05:07 +01:00
parent 51579be197
commit 0e5dfa42c3
3 changed files with 17 additions and 0 deletions

View File

@@ -371,6 +371,16 @@ void OrderList::ReindexOrderList()
}
}
bool OrderList::CheckOrderListIndexing() const
{
uint idx = 0;
for (Order *o = this->first; o != nullptr; o = o->next, idx++) {
if (idx >= this->order_index.size()) return false;
if (this->order_index[idx] != o) return false;
}
return idx == this->order_index.size();
}
/**
* Recomputes everything.
* @param chain first order in the chain
@@ -778,6 +788,7 @@ void OrderList::DebugCheckSanity() const
DEBUG(misc, 6, "... detected %u orders (%u manual), %u vehicles, %i timetabled, %i total",
(uint)this->GetNumOrders(), (uint)this->num_manual_orders,
this->num_vehicles, this->timetable_duration, this->total_duration);
assert(this->CheckOrderListIndexing());
}
/**