diff --git a/drape_frontend/selection_shape_generator.cpp b/drape_frontend/selection_shape_generator.cpp index 4fe68d1756..59d57e4f12 100644 --- a/drape_frontend/selection_shape_generator.cpp +++ b/drape_frontend/selection_shape_generator.cpp @@ -265,12 +265,13 @@ drape_ptr SelectionShapeGenerator::GenerateSelectionGeometry(ref_ptr // Build geometry. std::vector geometry; - geometry.reserve(segments.size() * 24); + size_t const segsCount = segments.size(); + geometry.reserve(segsCount * 24); float length = 0.0f; - for (size_t i = 0; i < segments.size(); ++i) + for (size_t i = 0; i < segsCount; ++i) { UpdateNormals(&segments[i], (i > 0) ? &segments[i - 1] : nullptr, - (i < static_cast(segments.size()) - 1) ? &segments[i + 1] : nullptr); + (i < segsCount - 1) ? &segments[i + 1] : nullptr); // Generate main geometry. m2::PointD const startPt = MapShape::ConvertToLocal(glsl::FromVec2(segments[i].m_points[StartPoint]), @@ -308,7 +309,7 @@ drape_ptr SelectionShapeGenerator::GenerateSelectionGeometry(ref_ptr geometry.emplace_back(endPivot, glsl::vec2(0, 0), colorCoord, glsl::vec3(length, 0, kCenter)); // Generate joins. - if (segments[i].m_generateJoin && i < static_cast(segments.size()) - 1) + if (segments[i].m_generateJoin && i < segsCount - 1) { glsl::vec2 const n1 = segments[i].m_hasLeftJoin[EndPoint] ? segments[i].m_leftNormals[EndPoint] : segments[i].m_rightNormals[EndPoint]; @@ -339,7 +340,7 @@ drape_ptr SelectionShapeGenerator::GenerateSelectionGeometry(ref_ptr true, geometry); } - if (i == static_cast(segments.size()) - 1) + if (i == segsCount - 1) { std::vector normals; normals.reserve(24); diff --git a/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm b/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm index b5f70bbbf1..12c58c8400 100644 --- a/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm +++ b/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm @@ -40,10 +40,7 @@ using namespace storage; GetFramework().GetStorage().Subscribe( [observers](CountryId const & countryId) { - // A copy is created, because MWMMapDownloadDialog is unsubscribed inside this notification with - // NSGenericException', reason: '*** Collection was mutated while being enumerated.' - NSHashTable *observersCopy = [observers copy]; - for (id observer in observersCopy) { + for (id observer in observers) { [observer processCountryEvent:@(countryId.c_str())]; } },