Fix tile iterator leak in CmdConvertRail
This commit is contained in:
@@ -2215,7 +2215,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
|||||||
CommandCost error = CommandCost(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK); // by default, there is no track to convert.
|
CommandCost error = CommandCost(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK); // by default, there is no track to convert.
|
||||||
bool found_convertible_track = false; // whether we actually did convert some track (see bug #7633)
|
bool found_convertible_track = false; // whether we actually did convert some track (see bug #7633)
|
||||||
|
|
||||||
TileIterator *iter = diagonal ? (TileIterator *)new DiagonalTileIterator(area_start, area_end) : new OrthogonalTileIterator(area_start, area_end);
|
std::unique_ptr<TileIterator> iter(diagonal ? (TileIterator *)new DiagonalTileIterator(area_start, area_end) : new OrthogonalTileIterator(area_start, area_end));
|
||||||
for (; (tile = *iter) != INVALID_TILE; ++(*iter)) {
|
for (; (tile = *iter) != INVALID_TILE; ++(*iter)) {
|
||||||
TileType tt = GetTileType(tile);
|
TileType tt = GetTileType(tile);
|
||||||
|
|
||||||
@@ -2456,7 +2456,6 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete iter;
|
|
||||||
return found_convertible_track ? cost : error;
|
return found_convertible_track ? cost : error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user