From 19bc15523f3661e3999741e039ebf0c6cd583d2c Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 23 Nov 2022 13:47:04 -0600 Subject: [PATCH] fix: new sonarcloud, coverity, gcc warnings (#4229) --- gtk/DetailsDialog.cc | 50 +++++++++++++------------- libtransmission/announcer-udp.cc | 4 +-- libtransmission/announcer.cc | 1 - libtransmission/bandwidth.cc | 8 ++--- libtransmission/peer-mgr.cc | 10 +++--- libtransmission/peer-mse.h | 6 ++-- libtransmission/session.cc | 8 ++--- tests/libtransmission/bitfield-test.cc | 4 +-- 8 files changed, 43 insertions(+), 48 deletions(-) diff --git a/gtk/DetailsDialog.cc b/gtk/DetailsDialog.cc index bf215eb8c..23c1b4754 100644 --- a/gtk/DetailsDialog.cc +++ b/gtk/DetailsDialog.cc @@ -1111,17 +1111,17 @@ public: add(upload_rate_string); add(client); add(progress); - add(upload_request_count_int); + add(upload_request_count_number); add(upload_request_count_string); - add(download_request_count_int); + add(download_request_count_number); add(download_request_count_string); - add(blocks_downloaded_count_int); + add(blocks_downloaded_count_number); add(blocks_downloaded_count_string); - add(blocks_uploaded_count_int); + add(blocks_uploaded_count_number); add(blocks_uploaded_count_string); - add(reqs_cancelled_by_client_count_int); + add(reqs_cancelled_by_client_count_number); add(reqs_cancelled_by_client_count_string); - add(reqs_cancelled_by_peer_count_int); + add(reqs_cancelled_by_peer_count_number); add(reqs_cancelled_by_peer_count_string); add(encryption_stock_id); add(flags); @@ -1138,17 +1138,17 @@ public: Gtk::TreeModelColumn upload_rate_string; Gtk::TreeModelColumn client; Gtk::TreeModelColumn progress; - Gtk::TreeModelColumn upload_request_count_int; + Gtk::TreeModelColumn upload_request_count_number; Gtk::TreeModelColumn upload_request_count_string; - Gtk::TreeModelColumn download_request_count_int; + Gtk::TreeModelColumn download_request_count_number; Gtk::TreeModelColumn download_request_count_string; - Gtk::TreeModelColumn blocks_downloaded_count_int; + Gtk::TreeModelColumn blocks_downloaded_count_number; Gtk::TreeModelColumn blocks_downloaded_count_string; - Gtk::TreeModelColumn blocks_uploaded_count_int; + Gtk::TreeModelColumn blocks_uploaded_count_number; Gtk::TreeModelColumn blocks_uploaded_count_string; - Gtk::TreeModelColumn reqs_cancelled_by_client_count_int; + Gtk::TreeModelColumn reqs_cancelled_by_client_count_number; Gtk::TreeModelColumn reqs_cancelled_by_client_count_string; - Gtk::TreeModelColumn reqs_cancelled_by_peer_count_int; + Gtk::TreeModelColumn reqs_cancelled_by_peer_count_number; Gtk::TreeModelColumn reqs_cancelled_by_peer_count_string; Gtk::TreeModelColumn encryption_stock_id; Gtk::TreeModelColumn flags; @@ -1245,10 +1245,10 @@ void refreshPeerRow(Gtk::TreeModel::iterator const& iter, tr_peer_stat const* pe cancelled_by_peer = std::to_string(peer->cancelsToClient); } - (*iter)[peer_cols.progress] = (int)(100.0 * peer->progress); - (*iter)[peer_cols.upload_request_count_int] = peer->activeReqsToClient; + (*iter)[peer_cols.progress] = static_cast(100.0 * peer->progress); + (*iter)[peer_cols.upload_request_count_number] = peer->activeReqsToClient; (*iter)[peer_cols.upload_request_count_string] = up_count; - (*iter)[peer_cols.download_request_count_int] = peer->activeReqsToPeer; + (*iter)[peer_cols.download_request_count_number] = peer->activeReqsToPeer; (*iter)[peer_cols.download_request_count_string] = down_count; (*iter)[peer_cols.download_rate_double] = peer->rateToClient_KBps; (*iter)[peer_cols.download_rate_string] = down_speed; @@ -1256,13 +1256,13 @@ void refreshPeerRow(Gtk::TreeModel::iterator const& iter, tr_peer_stat const* pe (*iter)[peer_cols.upload_rate_string] = up_speed; (*iter)[peer_cols.flags] = std::data(peer->flagStr); (*iter)[peer_cols.was_updated] = true; - (*iter)[peer_cols.blocks_downloaded_count_int] = (int)peer->blocksToClient; + (*iter)[peer_cols.blocks_downloaded_count_number] = peer->blocksToClient; (*iter)[peer_cols.blocks_downloaded_count_string] = blocks_to_client; - (*iter)[peer_cols.blocks_uploaded_count_int] = (int)peer->blocksToPeer; + (*iter)[peer_cols.blocks_uploaded_count_number] = peer->blocksToPeer; (*iter)[peer_cols.blocks_uploaded_count_string] = blocks_to_peer; - (*iter)[peer_cols.reqs_cancelled_by_client_count_int] = (int)peer->cancelsToPeer; + (*iter)[peer_cols.reqs_cancelled_by_client_count_number] = peer->cancelsToPeer; (*iter)[peer_cols.reqs_cancelled_by_client_count_string] = cancelled_by_client; - (*iter)[peer_cols.reqs_cancelled_by_peer_count_int] = (int)peer->cancelsToClient; + (*iter)[peer_cols.reqs_cancelled_by_peer_count_number] = peer->cancelsToClient; (*iter)[peer_cols.reqs_cancelled_by_peer_count_string] = cancelled_by_peer; } @@ -1615,42 +1615,42 @@ void setPeerViewColumns(Gtk::TreeView* peer_view) auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("Dn Reqs"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.download_request_count_int; + sort_col = &peer_cols.download_request_count_number; } else if (*col == peer_cols.upload_request_count_string) { auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("Up Reqs"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.upload_request_count_int; + sort_col = &peer_cols.upload_request_count_number; } else if (*col == peer_cols.blocks_downloaded_count_string) { auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("Dn Blocks"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.blocks_downloaded_count_int; + sort_col = &peer_cols.blocks_downloaded_count_number; } else if (*col == peer_cols.blocks_uploaded_count_string) { auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("Up Blocks"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.blocks_uploaded_count_int; + sort_col = &peer_cols.blocks_uploaded_count_number; } else if (*col == peer_cols.reqs_cancelled_by_client_count_string) { auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("We Cancelled"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.reqs_cancelled_by_client_count_int; + sort_col = &peer_cols.reqs_cancelled_by_client_count_number; } else if (*col == peer_cols.reqs_cancelled_by_peer_count_string) { auto* r = Gtk::make_managed(); c = Gtk::make_managed(_("They Cancelled"), *r); c->add_attribute(r->property_text(), *col); - sort_col = &peer_cols.reqs_cancelled_by_peer_count_int; + sort_col = &peer_cols.reqs_cancelled_by_peer_count_number; } else if (*col == peer_cols.download_rate_string) { diff --git a/libtransmission/announcer-udp.cc b/libtransmission/announcer-udp.cc index 40d8a117b..97cc551ae 100644 --- a/libtransmission/announcer-udp.cc +++ b/libtransmission/announcer-udp.cc @@ -101,7 +101,7 @@ struct tau_scrape_request return !!on_response_; } - void requestFinished() + void requestFinished() const { if (on_response_) { @@ -194,7 +194,7 @@ struct tau_announce_request return !!on_response_; } - void requestFinished() + void requestFinished() const { if (on_response_) { diff --git a/libtransmission/announcer.cc b/libtransmission/announcer.cc index 6c3d6277a..7b2c9fcd9 100644 --- a/libtransmission/announcer.cc +++ b/libtransmission/announcer.cc @@ -1647,7 +1647,6 @@ static tr_tracker_view trackerView(tr_torrent const& tor, size_t tier_index, tr_ } } - TR_ASSERT(0 <= view.tier); return view; } diff --git a/libtransmission/bandwidth.cc b/libtransmission/bandwidth.cc index 7df46f8df..9da33b8ae 100644 --- a/libtransmission/bandwidth.cc +++ b/libtransmission/bandwidth.cc @@ -271,19 +271,19 @@ size_t tr_bandwidth::clamp(uint64_t now, tr_direction dir, size_t byte_count) co auto const current = this->getRawSpeedBytesPerSecond(now, TR_DOWN); auto const desired = this->getDesiredSpeedBytesPerSecond(TR_DOWN); - auto const r = desired >= 1 ? double(current) / desired : 0; + auto const r = desired >= 1 ? static_cast(current) / desired : 0.0; if (r > 1.0) { - byte_count = 0; + byte_count = 0; // none left } else if (r > 0.9) { - byte_count = static_cast(byte_count * 0.8); + byte_count -= (byte_count / 5U); // cap at 80% } else if (r > 0.8) { - byte_count = static_cast(byte_count * 0.9); + byte_count -= (byte_count / 10U); // cap at 90% } } } diff --git a/libtransmission/peer-mgr.cc b/libtransmission/peer-mgr.cc index 83d0b68c5..685b57845 100644 --- a/libtransmission/peer-mgr.cc +++ b/libtransmission/peer-mgr.cc @@ -390,7 +390,7 @@ public: return tor->unique_lock(); } - [[nodiscard]] size_t countActiveWebseeds(uint64_t now) const noexcept + [[nodiscard]] uint16_t countActiveWebseeds(uint64_t now) const noexcept { if (!tor->isRunning || tor->isDone()) { @@ -2545,12 +2545,10 @@ void tr_peerMgr::bandwidthPulse() /* torrent upkeep */ for (auto* const tor : session->torrents()) { - auto* const swarm = tor->swarm; - - /* run the completeness check for any torrents that need it */ - if (swarm->needs_completeness_check) + // run the completeness check for any torrents that need it + if (auto& needs_check = tor->swarm->needs_completeness_check; needs_check) { - swarm->needs_completeness_check = false; + needs_check = false; tor->recheckCompleteness(); } diff --git a/libtransmission/peer-mse.h b/libtransmission/peer-mse.h index 2ac98caa8..0cf912c65 100644 --- a/libtransmission/peer-mse.h +++ b/libtransmission/peer-mse.h @@ -81,7 +81,8 @@ class Filter public: void decryptInit(bool is_incoming, DH const&, tr_sha1_digest_t const& info_hash); - constexpr void decrypt(size_t buf_len, void* buf) + template + constexpr void decrypt(size_t buf_len, T* buf) { if (dec_active_) { @@ -91,7 +92,8 @@ public: void encryptInit(bool is_incoming, DH const&, tr_sha1_digest_t const& info_hash); - constexpr void encrypt(size_t buf_len, void* buf) + template + constexpr void encrypt(size_t buf_len, T* buf) { if (enc_active_) { diff --git a/libtransmission/session.cc b/libtransmission/session.cc index 8cfe7d317..960a66a50 100644 --- a/libtransmission/session.cc +++ b/libtransmission/session.cc @@ -1982,13 +1982,9 @@ size_t tr_session::countQueueFreeSlots(tr_direction dir) const noexcept } /* is it stalled? */ - if (stalled_enabled) + if (stalled_enabled && difftime(now, std::max(tor->startDate, tor->activityDate)) >= stalled_if_idle_for_n_seconds) { - auto const idle_secs = static_cast(difftime(now, std::max(tor->startDate, tor->activityDate))); - if (idle_secs >= stalled_if_idle_for_n_seconds) - { - continue; - } + continue; } ++active_count; diff --git a/tests/libtransmission/bitfield-test.cc b/tests/libtransmission/bitfield-test.cc index 042a3d307..e1d6922a8 100644 --- a/tests/libtransmission/bitfield-test.cc +++ b/tests/libtransmission/bitfield-test.cc @@ -337,7 +337,7 @@ TEST(Bitfield, percent) EXPECT_NEAR(0.25F, field.percent(), 0.01); } -TEST(Bitfield, bitwise_or) +TEST(Bitfield, bitwiseOr) { auto a = tr_bitfield{ 100 }; auto b = tr_bitfield{ 100 }; @@ -386,7 +386,7 @@ TEST(Bitfield, bitwise_or) EXPECT_TRUE(a.hasAll()); } -TEST(Bitfield, bitwise_and) +TEST(Bitfield, bitwiseAnd) { auto a = tr_bitfield{ 100 }; auto b = tr_bitfield{ 100 };