From 5dbece236b805b395cdde163716d863ae8b14a9f Mon Sep 17 00:00:00 2001 From: Sergey Yershov Date: Mon, 16 Jan 2017 15:21:10 +0300 Subject: [PATCH] Fix warnings --- coding/fixed_bits_ddvector.hpp | 2 ++ generator/altitude_generator.cpp | 9 +++++---- .../booking_quality_check/booking_quality_check.cpp | 2 +- .../feature_segments_checker.cpp | 3 ++- generator/restriction_generator.cpp | 5 +++-- generator/routing_index_generator.cpp | 3 ++- generator/search_index_builder.cpp | 2 +- generator/sponsored_dataset_inl.hpp | 2 +- .../srtm_coverage_checker/srtm_coverage_checker.cpp | 2 +- indexer/indexer_tests/trie_test.cpp | 2 +- indexer/trie_builder.hpp | 11 ++++++----- routing/index_graph_serialization.hpp | 4 +++- routing/road_index.hpp | 4 +++- routing/routing_serialization.hpp | 11 ++++++----- 14 files changed, 37 insertions(+), 25 deletions(-) diff --git a/coding/fixed_bits_ddvector.hpp b/coding/fixed_bits_ddvector.hpp index a1b619fb61..6a33acc0e5 100644 --- a/coding/fixed_bits_ddvector.hpp +++ b/coding/fixed_bits_ddvector.hpp @@ -130,6 +130,8 @@ public: TWriter & m_finalWriter; public: + using ValueType = TValue; + explicit Builder(TWriter & writer) : m_writer(m_data), m_bits(new TBits(m_writer)), m_finalWriter(writer) { diff --git a/generator/altitude_generator.cpp b/generator/altitude_generator.cpp index d90a6d008f..1308ebc108 100644 --- a/generator/altitude_generator.cpp +++ b/generator/altitude_generator.cpp @@ -20,6 +20,7 @@ #include "geometry/latlon.hpp" #include "base/assert.hpp" +#include "base/checked_cast.hpp" #include "base/logging.hpp" #include "base/scope_guard.hpp" #include "base/stl_helpers.hpp" @@ -184,7 +185,7 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter) succinct::bit_vector_builder & builder = processor.GetAltitudeAvailabilityBuilder(); succinct::rs_bit_vector(&builder).map(visitor); } - header.m_featureTableOffset = w.Pos() - startOffset; + header.m_featureTableOffset = base::checked_cast(w.Pos() - startOffset); vector offsets; vector deltas; @@ -194,7 +195,7 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter) Processor::TFeatureAltitudes const & featureAltitudes = processor.GetFeatureAltitudes(); for (auto const & a : featureAltitudes) { - offsets.push_back(writer.Pos()); + offsets.push_back(base::checked_cast(writer.Pos())); a.m_altitudes.Serialize(header.m_minAltitude, writer); } } @@ -211,10 +212,10 @@ void BuildRoadAltitudes(string const & mwmPath, AltitudeGetter & altitudeGetter) succinct::elias_fano(&builder).map(visitor); } // Writing altitude info. - header.m_altitudesOffset = w.Pos() - startOffset; + header.m_altitudesOffset = base::checked_cast(w.Pos() - startOffset); w.Write(deltas.data(), deltas.size()); w.WritePaddingByEnd(8); - header.m_endOffset = w.Pos() - startOffset; + header.m_endOffset = base::checked_cast(w.Pos() - startOffset); // Rewriting header info. int64_t const endOffset = w.Pos(); diff --git a/generator/booking_quality_check/booking_quality_check.cpp b/generator/booking_quality_check/booking_quality_check.cpp index 1d189e1b77..28f3237bfb 100644 --- a/generator/booking_quality_check/booking_quality_check.cpp +++ b/generator/booking_quality_check/booking_quality_check.cpp @@ -278,7 +278,7 @@ void GenerateSample(Dataset const & dataset, boost::copy(features | boost::adaptors::map_keys, begin(elementIndexes)); // TODO(mgsergio): Try RandomSample (from search:: at the moment of writing). - shuffle(elementIndexes.begin(), elementIndexes.end(), minstd_rand(FLAGS_seed)); + shuffle(elementIndexes.begin(), elementIndexes.end(), minstd_rand(static_cast(FLAGS_seed))); if (FLAGS_selection_size < elementIndexes.size()) elementIndexes.resize(FLAGS_selection_size); diff --git a/generator/feature_segments_checker/feature_segments_checker.cpp b/generator/feature_segments_checker/feature_segments_checker.cpp index aa7e2c534e..b37a45809b 100644 --- a/generator/feature_segments_checker/feature_segments_checker.cpp +++ b/generator/feature_segments_checker/feature_segments_checker.cpp @@ -15,6 +15,7 @@ #include "platform/platform.hpp" +#include "base/checked_cast.hpp" #include "base/logging.hpp" #include "base/math.hpp" @@ -166,7 +167,7 @@ public: } f.ParseGeometry(FeatureType::BEST_GEOMETRY); - uint32_t const numPoints = f.GetPointsCount(); + uint32_t const numPoints = base::asserted_cast(f.GetPointsCount()); if (numPoints == 0) { ++m_emptyRoadCount; diff --git a/generator/restriction_generator.cpp b/generator/restriction_generator.cpp index bf672dd81e..6613e12cd3 100644 --- a/generator/restriction_generator.cpp +++ b/generator/restriction_generator.cpp @@ -5,6 +5,7 @@ #include "coding/file_container.hpp" #include "coding/file_writer.hpp" +#include "base/checked_cast.hpp" #include "base/logging.hpp" #include "base/stl_helpers.hpp" @@ -33,8 +34,8 @@ bool BuildRoadRestrictions(string const & mwmPath, string const & restrictionPat lower_bound(restrictions.cbegin(), restrictions.cend(), Restriction(Restriction::Type::Only, {} /* links */), my::LessBy(&Restriction::m_type)); RoutingHeader header; - header.m_noRestrictionCount = distance(restrictions.cbegin(), firstOnlyIt); - header.m_onlyRestrictionCount = restrictions.size() - header.m_noRestrictionCount; + header.m_noRestrictionCount = base::checked_cast(distance(restrictions.cbegin(), firstOnlyIt)); + header.m_onlyRestrictionCount = base::checked_cast(restrictions.size() - header.m_noRestrictionCount); LOG(LINFO, ("Header info. There are", header.m_noRestrictionCount, "of type No restrictions and", header.m_onlyRestrictionCount, "of type Only restrictions")); diff --git a/generator/routing_index_generator.cpp b/generator/routing_index_generator.cpp index 8b6016fe9d..bbd1d8caad 100644 --- a/generator/routing_index_generator.cpp +++ b/generator/routing_index_generator.cpp @@ -13,6 +13,7 @@ #include "coding/file_container.hpp" +#include "base/checked_cast.hpp" #include "base/logging.hpp" #include "std/bind.hpp" @@ -72,7 +73,7 @@ private: for (size_t i = 0; i < f.GetPointsCount(); ++i) { uint64_t const locationKey = PointToInt64(f.GetPoint(i), POINT_COORD_BITS); - m_posToJoint[locationKey].AddPoint(RoadPoint(id, i)); + m_posToJoint[locationKey].AddPoint(RoadPoint(id, base::checked_cast(i))); } } diff --git a/generator/search_index_builder.cpp b/generator/search_index_builder.cpp index 016b2a9e2e..78e08059a2 100644 --- a/generator/search_index_builder.cpp +++ b/generator/search_index_builder.cpp @@ -363,7 +363,7 @@ void BuildAddressTable(FilesContainerR & container, Writer & writer) ++address; } if (streetMatched) - building2Street.PushBack(streetIndex); + building2Street.PushBack(base::checked_cast(streetIndex)); else building2Street.PushBackUndefined(); } diff --git a/generator/sponsored_dataset_inl.hpp b/generator/sponsored_dataset_inl.hpp index 355192885a..12364346a3 100644 --- a/generator/sponsored_dataset_inl.hpp +++ b/generator/sponsored_dataset_inl.hpp @@ -111,7 +111,7 @@ SponsoredDataset::GetNearestObjects(ms::LatLon const & latLon, namespace bgi = boost::geometry::index; vector indexes; - for_each(bgi::qbegin(m_rtree, bgi::nearest(Point(latLon.lat, latLon.lon), limit)), + for_each(bgi::qbegin(m_rtree, bgi::nearest(Point(latLon.lat, latLon.lon), static_cast(limit))), bgi::qend(m_rtree), [this, &latLon, &indexes, maxDistanceMeters](Value const & v) { auto const & object = GetObjectById(v.second); diff --git a/generator/srtm_coverage_checker/srtm_coverage_checker.cpp b/generator/srtm_coverage_checker/srtm_coverage_checker.cpp index dfd033522b..28b366ea05 100644 --- a/generator/srtm_coverage_checker/srtm_coverage_checker.cpp +++ b/generator/srtm_coverage_checker/srtm_coverage_checker.cpp @@ -71,7 +71,7 @@ int main(int argc, char * argv[]) size_t all = 0; size_t good = 0; - for (size_t i = 0; i < dataFacade.GetNumberOfNodes(); ++i) + for (TOsrmNodeId i = 0; i < dataFacade.GetNumberOfNodes(); ++i) { buffer_vector buffer; segMapping.ForEachFtSeg(i, MakeBackInsertFunctor(buffer)); diff --git a/indexer/indexer_tests/trie_test.cpp b/indexer/indexer_tests/trie_test.cpp index ca3555648f..38265302bd 100644 --- a/indexer/indexer_tests/trie_test.cpp +++ b/indexer/indexer_tests/trie_test.cpp @@ -36,7 +36,7 @@ struct ChildNodeInfo uint32_t Size() const { return m_size; } bool IsLeaf() const { return m_isLeaf; } uint32_t const * GetEdge() const { return &m_edge[0]; } - uint32_t GetEdgeSize() const { return m_edge.size(); } + size_t GetEdgeSize() const { return m_edge.size(); } }; // The SingleValueSerializer and ValueList classes are similar to diff --git a/indexer/trie_builder.hpp b/indexer/trie_builder.hpp index bf728c50da..02dfcf3737 100644 --- a/indexer/trie_builder.hpp +++ b/indexer/trie_builder.hpp @@ -5,6 +5,7 @@ #include "coding/varint.hpp" #include "base/buffer_vector.hpp" +#include "base/checked_cast.hpp" #include "base/logging.hpp" #include "std/algorithm.hpp" @@ -48,7 +49,7 @@ void WriteNode(TSink & sink, TSerializer const & serializer, TrieChar baseChar, TValueList const & valueList, TChildIter const begChild, TChildIter const endChild, bool isRoot = false) { - uint32_t const valueCount = valueList.Size(); + uint32_t const valueCount = base::asserted_cast(valueList.Size()); if (begChild == endChild && !isRoot) { // Leaf node. @@ -65,7 +66,7 @@ void WriteNode(TSink & sink, TSerializer const & serializer, TrieChar baseChar, return; } - uint32_t const childCount = endChild - begChild; + uint32_t const childCount = base::asserted_cast(endChild - begChild); uint8_t const header = static_cast((min(valueCount, 3U) << 6) + min(childCount, 63U)); sink.Write(&header, 1); if (valueCount >= 3) @@ -77,7 +78,7 @@ void WriteNode(TSink & sink, TSerializer const & serializer, TrieChar baseChar, { uint8_t header = (it->IsLeaf() ? 128 : 0); TrieChar const * const edge = it->GetEdge(); - uint32_t const edgeSize = it->GetEdgeSize(); + uint32_t const edgeSize = base::asserted_cast(it->GetEdgeSize()); CHECK_NOT_EQUAL(edgeSize, 0, ()); CHECK_LESS(edgeSize, 100000, ()); uint32_t const diff0 = bits::ZigZagEncode(int32_t(edge[0] - baseChar)); @@ -127,7 +128,7 @@ struct ChildInfo uint32_t Size() const { return m_size; } bool IsLeaf() const { return m_isLeaf; } TrieChar const * GetEdge() const { return m_edge.data(); } - uint32_t GetEdgeSize() const { return m_edge.size(); } + size_t GetEdgeSize() const { return m_edge.size(); } }; template @@ -184,7 +185,7 @@ void WriteNodeReverse(TSink & sink, TSerializer const & serializer, TrieChar bas } template -void PopNodes(TSink & sink, TSerializer const & serializer, TNodes & nodes, int nodesToPop) +void PopNodes(TSink & sink, TSerializer const & serializer, TNodes & nodes, size_t nodesToPop) { using TNodeInfo = typename TNodes::value_type; ASSERT_GREATER(nodes.size(), nodesToPop, ()); diff --git a/routing/index_graph_serialization.hpp b/routing/index_graph_serialization.hpp index 796f2fd97d..a11b358b25 100644 --- a/routing/index_graph_serialization.hpp +++ b/routing/index_graph_serialization.hpp @@ -10,6 +10,8 @@ #include "coding/reader.hpp" #include "coding/write_to_sink.hpp" +#include "base/checked_cast.hpp" + #include "std/algorithm.hpp" #include "std/cstdint.hpp" #include "std/limits.hpp" @@ -218,7 +220,7 @@ private: uint32_t GetNumRoads() const { return m_numRoads; } Joint::Id GetNumJoints() const { return m_numJoints; } - uint32_t GetNumSections() const { return m_sections.size(); } + uint32_t GetNumSections() const { return base::asserted_cast(m_sections.size()); } Section const & GetSection(size_t index) const { diff --git a/routing/road_index.hpp b/routing/road_index.hpp index 779183172a..ada8b054ce 100644 --- a/routing/road_index.hpp +++ b/routing/road_index.hpp @@ -2,6 +2,8 @@ #include "routing/joint.hpp" +#include "base/checked_cast.hpp" + #include "std/algorithm.hpp" #include "std/cstdint.hpp" #include "std/unordered_map.hpp" @@ -130,7 +132,7 @@ public: // If there is no nearest point, return {Joint::kInvalidId, 0} pair FindNeighbor(RoadPoint const & rp, bool forward) const; - uint32_t GetSize() const { return m_roads.size(); } + uint32_t GetSize() const { return base::asserted_cast(m_roads.size()); } Joint::Id GetJointId(RoadPoint const & rp) const { diff --git a/routing/routing_serialization.hpp b/routing/routing_serialization.hpp index 87a7782a7b..8e1b747a7c 100644 --- a/routing/routing_serialization.hpp +++ b/routing/routing_serialization.hpp @@ -9,6 +9,7 @@ #include "base/assert.hpp" #include "base/bits.hpp" +#include "base/checked_cast.hpp" #include "std/algorithm.hpp" #include "std/string.hpp" @@ -163,7 +164,7 @@ private: BitReader bits(src); for (size_t i = 0; i < count; ++i) { - uint32_t const biasedLinkNumber = coding::DeltaCoder::Decode(bits); + auto const biasedLinkNumber = coding::DeltaCoder::Decode(bits); if (biasedLinkNumber == 0) { LOG(LERROR, ("Decoded link restriction number is zero.")); @@ -173,22 +174,22 @@ private: routing::Restriction restriction(type, {} /* links */); restriction.m_featureIds.resize(numLinks); - uint32_t const biasedFirstFeatureId = coding::DeltaCoder::Decode(bits); + auto const biasedFirstFeatureId = coding::DeltaCoder::Decode(bits); if (biasedFirstFeatureId == 0) { LOG(LERROR, ("Decoded first link restriction feature id delta is zero.")); return false; } - restriction.m_featureIds[0] = prevFirstLinkFeatureId + biasedFirstFeatureId - 1; + restriction.m_featureIds[0] = prevFirstLinkFeatureId + base::checked_cast(biasedFirstFeatureId) - 1; for (size_t i = 1; i < numLinks; ++i) { - uint32_t const biasedDelta = coding::DeltaCoder::Decode(bits); + auto const biasedDelta = coding::DeltaCoder::Decode(bits); if (biasedDelta == 0) { LOG(LERROR, ("Decoded link restriction feature id delta is zero.")); return false; } - uint32_t const delta = biasedDelta - 1; + auto const delta = biasedDelta - 1; restriction.m_featureIds[i] = static_cast( bits::ZigZagDecode(delta) + restriction.m_featureIds[i - 1]); }