From 00b3b7f52a4762141ffc54f960acdce3577b360f Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Wed, 25 Sep 2019 20:00:42 +0300 Subject: [PATCH 1/2] Do not reserve memory for spread vector --- src/map_field.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/map_field.cpp b/src/map_field.cpp index 3ebdf145d25b7..30754f89c3626 100644 --- a/src/map_field.cpp +++ b/src/map_field.cpp @@ -282,7 +282,6 @@ void map::spread_gas( field_entry &cur, const tripoint &p, int percent_spread, // Then, spread to a nearby point. // If not possible (or randomly), try to spread up // Wind direction will block the field spreading into the wind. - spread.reserve( 8 ); // Start at end_it + 1, then wrap around until all elements have been processed. for( size_t i = ( end_it + 1 ) % neighs.size(), count = 0 ; count != neighs.size(); From d9d5a2f13e1915f43524672e2837f0794060cd41 Mon Sep 17 00:00:00 2001 From: ZhilkinSerg Date: Wed, 25 Sep 2019 20:02:49 +0300 Subject: [PATCH 2/2] Check spread vector for emptiness before trying to spread field --- src/map_field.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map_field.cpp b/src/map_field.cpp index 30754f89c3626..871878aa90e98 100644 --- a/src/map_field.cpp +++ b/src/map_field.cpp @@ -296,7 +296,7 @@ void map::spread_gas( field_entry &cur, const tripoint &p, int percent_spread, const maptile remove_tile = std::get<0>( maptiles ); const maptile remove_tile2 = std::get<1>( maptiles ); const maptile remove_tile3 = std::get<2>( maptiles ); - if( !zlevels || one_in( spread.size() ) ) { + if( !spread.empty() && ( !zlevels || one_in( spread.size() ) ) ) { // Construct the destination from offset and p if( g->is_sheltered( p ) || windpower < 5 ) { gas_spread_to( cur, neighs[ random_entry( spread ) ] );