From ff3ec869efbba9549e2e07479cf19fafdd37f9c2 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Fri, 30 Apr 2021 09:32:10 +0200 Subject: [PATCH] Fix some implicit signed-unsigned conversions Found with -Wsign-conversion. --- src/db-copy-mgr.hpp | 7 ++++--- src/middle-pgsql.cpp | 2 +- src/middle-ram.cpp | 4 ++-- src/progress-display.cpp | 10 ++++++---- src/tagtransform-c.cpp | 5 +++-- src/tagtransform-c.hpp | 2 +- src/util.cpp | 4 ++-- src/util.hpp | 7 +++++-- 8 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/db-copy-mgr.hpp b/src/db-copy-mgr.hpp index c8f861652..cf00fbbc4 100644 --- a/src/db-copy-mgr.hpp +++ b/src/db-copy-mgr.hpp @@ -250,9 +250,10 @@ class db_copy_mgr_t { char const *const lookup_hex = "0123456789ABCDEF"; - for (char c : wkb) { - m_current->buffer += lookup_hex[(c >> 4U) & 0xfU]; - m_current->buffer += lookup_hex[c & 0xfU]; + for (auto c : wkb) { + auto const num = static_cast(c); + m_current->buffer += lookup_hex[(num >> 4U) & 0xfU]; + m_current->buffer += lookup_hex[num & 0xfU]; } m_current->buffer += '\t'; } diff --git a/src/middle-pgsql.cpp b/src/middle-pgsql.cpp index 51108f6eb..f52652d67 100644 --- a/src/middle-pgsql.cpp +++ b/src/middle-pgsql.cpp @@ -458,7 +458,7 @@ middle_query_pgsql_t::rel_members_get(osmium::Relation const &rel, continue; } for (int j = 0; j < res.num_tuples(); ++j) { - if (m.ref() == wayidspg[j]) { + if (m.ref() == wayidspg[static_cast(j)]) { { osmium::builder::WayBuilder builder{*buffer}; builder.set_id(m.ref()); diff --git a/src/middle-ram.cpp b/src/middle-ram.cpp index 821301c86..a1cd5e008 100644 --- a/src/middle-ram.cpp +++ b/src/middle-ram.cpp @@ -152,7 +152,7 @@ void middle_ram_t::node(osmium::Node const &node) assert(node.visible()); if (m_store_options.locations) { - m_node_locations.set(node.positive_id(), node.location()); + m_node_locations.set(node.id(), node.location()); } if (m_store_options.nodes && @@ -193,7 +193,7 @@ std::size_t middle_ram_t::nodes_get_list(osmium::WayNodeList *nodes) const if (m_store_options.locations) { for (auto &nr : *nodes) { - nr.set_location(m_node_locations.get(nr.positive_ref())); + nr.set_location(m_node_locations.get(nr.ref())); if (nr.location().valid()) { ++count; } diff --git a/src/progress-display.cpp b/src/progress-display.cpp index 369e88510..36e88c3bf 100644 --- a/src/progress-display.cpp +++ b/src/progress-display.cpp @@ -88,7 +88,8 @@ uint64_t progress_display_t::nodes_time(std::time_t now) const noexcept if (m_node.count == 0) { return 0; } - return (m_way.start > 0 ? m_way.start : now) - m_node.start; + return static_cast((m_way.start > 0 ? m_way.start : now) - + m_node.start); } uint64_t progress_display_t::ways_time(std::time_t now) const noexcept @@ -96,7 +97,8 @@ uint64_t progress_display_t::ways_time(std::time_t now) const noexcept if (m_way.count == 0) { return 0; } - return (m_rel.start > 0 ? m_rel.start : now) - m_way.start; + return static_cast((m_rel.start > 0 ? m_rel.start : now) - + m_way.start); } uint64_t progress_display_t::rels_time(std::time_t now) const noexcept @@ -104,11 +106,11 @@ uint64_t progress_display_t::rels_time(std::time_t now) const noexcept if (m_rel.count == 0) { return 0; } - return now - m_rel.start; + return static_cast(now - m_rel.start); } uint64_t progress_display_t::overall_time(std::time_t now) const noexcept { - return now - m_node.start; + return static_cast(now - m_node.start); } diff --git a/src/tagtransform-c.cpp b/src/tagtransform-c.cpp index bd1c48f3c..6deb3b3d5 100644 --- a/src/tagtransform-c.cpp +++ b/src/tagtransform-c.cpp @@ -100,7 +100,8 @@ std::unique_ptr c_tagtransform_t::clone() const } bool c_tagtransform_t::check_key(std::vector const &infos, - char const *k, bool *filter, int *flags) + char const *k, bool *filter, + unsigned int *flags) { //go through the actual tags found on the item and keep the ones in the export list for (auto const &info : infos) { @@ -150,7 +151,7 @@ bool c_tagtransform_t::filter_tags(osmium::OSMObject const &o, bool *polygon, //assume we dont like this set of tags bool filter = true; - int flags = 0; + unsigned int flags = 0; int add_area_tag = 0; auto export_type = o.type(); diff --git a/src/tagtransform-c.hpp b/src/tagtransform-c.hpp index e3ca8cf3b..f5e9059d1 100644 --- a/src/tagtransform-c.hpp +++ b/src/tagtransform-c.hpp @@ -31,7 +31,7 @@ class c_tagtransform_t : public tagtransform_t private: bool check_key(std::vector const &infos, char const *k, - bool *filter, int *flags); + bool *filter, unsigned int *flags); options_t const *m_options; export_list m_export_list; diff --git a/src/util.cpp b/src/util.cpp index b554f2a91..46bb3fbe9 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -40,8 +40,8 @@ std::string human_readable_duration(uint64_t seconds) std::string human_readable_duration(std::chrono::milliseconds ms) { - return human_readable_duration( - std::chrono::duration_cast(ms).count()); + return human_readable_duration(static_cast( + std::chrono::duration_cast(ms).count())); } } // namespace util diff --git a/src/util.hpp b/src/util.hpp index eb17b00bb..c5fd015eb 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -93,11 +93,14 @@ class timer_t uint64_t stop() noexcept { m_stop = std::time(nullptr); - return m_stop - m_start; + return static_cast(m_stop - m_start); } /// Return elapsed time - uint64_t elapsed() const noexcept { return m_stop - m_start; } + uint64_t elapsed() const noexcept + { + return static_cast(m_stop - m_start); + } /** * Calculate ratio: value divided by elapsed time.