mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 02:19:41 +00:00
(svn r25910) -Fix: Guard against empty FlowStats in a few more places.
This commit is contained in:
parent
b5dd83e84f
commit
f528d2c592
@ -478,7 +478,7 @@ bool VehicleCargoList::Stage(bool accepted, StationID current_station, StationID
|
||||
FlowStat new_shares = flow_it->second;
|
||||
new_shares.ChangeShare(current_station, INT_MIN);
|
||||
StationIDStack excluded = next_station;
|
||||
while (!excluded.IsEmpty()) {
|
||||
while (!excluded.IsEmpty() && !new_shares.GetShares()->empty()) {
|
||||
new_shares.ChangeShare(excluded.Pop(), INT_MIN);
|
||||
}
|
||||
if (new_shares.GetShares()->empty()) {
|
||||
|
@ -4228,6 +4228,7 @@ void FlowStat::ChangeShare(StationID st, int flow)
|
||||
*/
|
||||
void FlowStat::RestrictShare(StationID st)
|
||||
{
|
||||
assert(!this->shares.empty());
|
||||
uint flow = 0;
|
||||
uint last_share = 0;
|
||||
SharesMap new_shares;
|
||||
@ -4248,6 +4249,7 @@ void FlowStat::RestrictShare(StationID st)
|
||||
if (flow == 0) return;
|
||||
new_shares[last_share + flow] = st;
|
||||
this->shares.swap(new_shares);
|
||||
assert(!this->shares.empty());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4257,6 +4259,7 @@ void FlowStat::RestrictShare(StationID st)
|
||||
*/
|
||||
void FlowStat::ReleaseShare(StationID st)
|
||||
{
|
||||
assert(!this->shares.empty());
|
||||
uint flow = 0;
|
||||
uint next_share = 0;
|
||||
bool found = false;
|
||||
@ -4283,6 +4286,7 @@ void FlowStat::ReleaseShare(StationID st)
|
||||
}
|
||||
}
|
||||
this->shares.swap(new_shares);
|
||||
assert(!this->shares.empty());
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user