Bug #2441 ยป 0001-ai-default-Clean-up-on-every-early-return-from-cityr.patch
| ai/default/daisettler.c | ||
|---|---|---|
|
if (result->city_center.tdc == nullptr) {
|
||
|
fc_assert(result->city_center.tdc != nullptr);
|
||
|
pplayer->government = curr_govt;
|
||
|
if (virtual_city) {
|
||
|
destroy_city_virtual(pcity);
|
||
|
tile_set_owner(result->tile, saved_owner, saved_claimer);
|
||
|
}
|
||
|
cityresult_destroy(result);
|
||
|
return nullptr;
|
||
|
}
|
||
| ... | ... | |
|
} else {
|
||
|
/* There is no available tile in this city. All is worked. */
|
||
|
result->total = 0;
|
||
|
pplayer->government = curr_govt;
|
||
|
return result;
|
||
|
}
|
||
| ... | ... | |
|
tile_set_owner(result->tile, saved_owner, saved_claimer);
|
||
|
}
|
||
|
fc_assert_ret_val(result->city_center.tdc->sum >= 0, nullptr);
|
||
|
fc_assert_ret_val(result->remaining >= 0, nullptr);
|
||
|
if (result->city_center.tdc->sum < 0 || result->remaining < 0) {
|
||
|
fc_assert(result->city_center.tdc->sum >= 0);
|
||
|
fc_assert(result->remaining >= 0);
|
||
|
cityresult_destroy(result);
|
||
|
return nullptr;
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||