(svn r25424) -Fix: keep old flows around in an invalidated state to continue routing cargo if necessary

This commit is contained in:
fonsinchen
2013-06-17 20:38:11 +00:00
parent 72f464e6b5
commit e3807ed606
3 changed files with 38 additions and 1 deletions

View File

@@ -4086,7 +4086,23 @@ StationID FlowStat::GetVia(StationID excluded, StationID excluded2) const
}
assert(it3 != this->shares.end());
return it3->second;
}
/**
* Reduce all flows to minimum capacity so that they don't get in the way of
* link usage statistics too much. Keep them around, though, to continue
* routing any remaining cargo.
*/
void FlowStat::Invalidate()
{
assert(!this->shares.empty());
SharesMap new_shares;
uint i = 0;
for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) {
new_shares[++i] = it->second;
}
this->shares.swap(new_shares);
assert(!this->shares.empty());
}
/**