From 25909b06d2b5efaa874e5ebbd4bf7f57ebbff688 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 7 Mar 2021 00:14:50 +0000 Subject: [PATCH] Fix #8809: Crash when removing airport when hangar window open --- src/station_cmd.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 4077a7b8c6..7266ad6187 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2393,6 +2393,12 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) } if (flags & DC_EXEC) { + for (uint i = 0; i < st->airport.GetNumHangars(); ++i) { + DeleteWindowById( + WC_VEHICLE_DEPOT, st->airport.GetHangarTile(i) + ); + } + const AirportSpec *as = st->airport.GetSpec(); /* The noise level is the noise from the airport and reduce it to account for the distance to the town center. * And as for construction, always remove it, even if the setting is not set, in order to avoid the @@ -2423,12 +2429,6 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags) /* Clear the persistent storage. */ delete st->airport.psa; - for (uint i = 0; i < st->airport.GetNumHangars(); ++i) { - DeleteWindowById( - WC_VEHICLE_DEPOT, st->airport.GetHangarTile(i) - ); - } - st->rect.AfterRemoveRect(st, st->airport); st->airport.Clear();