From f39826cc597df0c1ee203aa114df99fa436a8408 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 2 Aug 2022 18:34:53 -0500 Subject: [PATCH] fix: clang-tidy-15 warnings (#3570) * fix: bugprone-assignment-in-if-condition warning in tr_bitfield::countFlags() * fix: bugprone-assignment-in-if-condition warning in tr_watchdir_generic_new() * fix: bugprone-assignment-in-if-condition warning in torrentRenamePath() * fix: bugprone-assignment-in-if-condition warning in tr_watchdir_inotify_on_event() * fix: bugprone-assignment-in-if-condition warning in tr_variantWalk() * fix: misc-const-correctness warning in TrackerDelegate::getText() * fix: bugprone-assignment-in-if-condition warning in Session::updateStats() * fix: performance-unnecessary-value-param warning in discoverThreadfunc() * fix: clang-analyzer-core.UndefinedBinaryOperatorResult warning in tr_completion::setHasAll() * fix: clang-analyzer-core.UndefinedBinaryOperatorResult warning in tr_torrentFileCompleted() * fix: silence clang-analyzer-cplusplus.NewDelete warning when using QPointer This appears to be a false positive; added NOLINT --- libtransmission/bitfield.cc | 3 ++- libtransmission/block-info.h | 4 +-- libtransmission/completion.cc | 4 +-- libtransmission/torrent.cc | 37 ++++++++++++++++------------ libtransmission/upnp.cc | 2 +- libtransmission/variant.cc | 38 +++++++++++++++++------------ libtransmission/watchdir-generic.cc | 6 ++--- libtransmission/watchdir-inotify.cc | 3 ++- qt/AboutDialog.cc | 2 +- qt/Session.cc | 11 ++++----- qt/TrackerDelegate.cc | 6 ----- qt/Utils.h | 2 +- 12 files changed, 61 insertions(+), 57 deletions(-) diff --git a/libtransmission/bitfield.cc b/libtransmission/bitfield.cc index 64704f966..34420610d 100644 --- a/libtransmission/bitfield.cc +++ b/libtransmission/bitfield.cc @@ -133,7 +133,8 @@ size_t tr_bitfield::countFlags(size_t begin, size_t end) const noexcept for (size_t i = first_byte + 1; i < walk_end;) { tmp_accum += doPopcount(flags_[i]); - if ((i += 2) > walk_end) + i += 2; + if (i > walk_end) { break; } diff --git a/libtransmission/block-info.h b/libtransmission/block-info.h index 5b9bf3b31..68b5db8ab 100644 --- a/libtransmission/block-info.h +++ b/libtransmission/block-info.h @@ -68,7 +68,7 @@ public: { if (!isInitialized()) { - return {}; + return { 0U, 0U }; } return { pieceLoc(piece).block, pieceLastLoc(piece).block + 1 }; @@ -78,7 +78,7 @@ public: { if (!isInitialized()) { - return {}; + return { 0U, 0U }; } auto const offset = pieceLoc(piece).byte; diff --git a/libtransmission/completion.cc b/libtransmission/completion.cc index c50fa2de7..9b81249b8 100644 --- a/libtransmission/completion.cc +++ b/libtransmission/completion.cc @@ -177,9 +177,9 @@ void tr_completion::setHasAll() noexcept void tr_completion::addPiece(tr_piece_index_t piece) { - auto const [begin, end] = block_info_->blockSpanForPiece(piece); + auto const span = block_info_->blockSpanForPiece(piece); - for (tr_block_index_t block = begin; block < end; ++block) + for (tr_block_index_t block = span.begin; block < span.end; ++block) { addBlock(block); } diff --git a/libtransmission/torrent.cc b/libtransmission/torrent.cc index 6deb1f212..ead7eaabd 100644 --- a/libtransmission/torrent.cc +++ b/libtransmission/torrent.cc @@ -2257,13 +2257,13 @@ static void tr_torrentFileCompleted(tr_torrent* tor, tr_file_index_t i) } } -static void tr_torrentPieceCompleted(tr_torrent* tor, tr_piece_index_t pieceIndex) +static void tr_torrentPieceCompleted(tr_torrent* tor, tr_piece_index_t piece_index) { - tr_peerMgrPieceCompleted(tor, pieceIndex); + tr_peerMgrPieceCompleted(tor, piece_index); // if this piece completes any file, invoke the fileCompleted func for it - auto const [begin, end] = tor->fpm_.fileSpan(pieceIndex); - for (tr_file_index_t file = begin; file < end; ++file) + auto const span = tor->fpm_.fileSpan(piece_index); + for (auto file = span.begin; file < span.end; ++file) { if (tor->completion.hasBlocks(tr_torGetFileBlockSpan(tor, file))) { @@ -2631,22 +2631,27 @@ static void torrentRenamePath( { error = EINVAL; } - else if ((error = renamePath(tor, oldpath, newname)) == 0) + else { - /* update tr_info.files */ - for (auto const& file_index : file_indices) - { - renameTorrentFileString(tor, oldpath, newname, file_index); - } + error = renamePath(tor, oldpath, newname); - /* update tr_info.name if user changed the toplevel */ - if (std::size(file_indices) == tor->fileCount() && !tr_strvContains(oldpath, '/')) + if (error == 0) { - tor->setName(newname); - } + /* update tr_info.files */ + for (auto const& file_index : file_indices) + { + renameTorrentFileString(tor, oldpath, newname, file_index); + } - tor->markEdited(); - tor->setDirty(); + /* update tr_info.name if user changed the toplevel */ + if (std::size(file_indices) == tor->fileCount() && !tr_strvContains(oldpath, '/')) + { + tor->setName(newname); + } + + tor->markEdited(); + tor->setDirty(); + } } /*** diff --git a/libtransmission/upnp.cc b/libtransmission/upnp.cc index 589ef9221..fee8596fd 100644 --- a/libtransmission/upnp.cc +++ b/libtransmission/upnp.cc @@ -240,7 +240,7 @@ enum UPNP_IGD_INVALID = 3 }; -static auto* discoverThreadfunc(std::string bindaddr) +static auto* discoverThreadfunc(std::string bindaddr) // NOLINT performance-unnecessary-value-param { return tr_upnpDiscover(2000, bindaddr.c_str()); } diff --git a/libtransmission/variant.cc b/libtransmission/variant.cc index c171a2633..87a0802f9 100644 --- a/libtransmission/variant.cc +++ b/libtransmission/variant.cc @@ -822,26 +822,32 @@ void tr_variantWalk(tr_variant const* v_in, struct VariantWalkFuncs const* walkF if (!node.is_visited) { v = &node.v; + node.is_visited = true; } - else if ((v = node.nextChild()) != nullptr) + else { - if (tr_variantIsDict(&node.v)) - { - auto tmp = tr_variant{}; - tr_variantInitQuark(&tmp, v->key); - walkFuncs->stringFunc(&tmp, user_data); - } - } - else // finished with this node - { - if (tr_variantIsContainer(&node.v)) - { - walkFuncs->containerEndFunc(&node.v, user_data); - } + v = node.nextChild(); - stack.pop(); - continue; + if (v != nullptr) + { + if (tr_variantIsDict(&node.v)) + { + auto tmp = tr_variant{}; + tr_variantInitQuark(&tmp, v->key); + walkFuncs->stringFunc(&tmp, user_data); + } + } + else // finished with this node + { + if (tr_variantIsContainer(&node.v)) + { + walkFuncs->containerEndFunc(&node.v, user_data); + } + + stack.pop(); + continue; + } } if (v != nullptr) diff --git a/libtransmission/watchdir-generic.cc b/libtransmission/watchdir-generic.cc index bd7a9dfe6..8ce45c219 100644 --- a/libtransmission/watchdir-generic.cc +++ b/libtransmission/watchdir-generic.cc @@ -73,10 +73,8 @@ tr_watchdir_backend* tr_watchdir_generic_new(tr_watchdir_t handle) { auto* backend = new tr_watchdir_generic{}; backend->base.free_func = &tr_watchdir_generic_free; - - if ((backend - ->event = event_new(tr_watchdir_get_event_base(handle), -1, EV_PERSIST, &tr_watchdir_generic_on_event, handle)) == - nullptr) + backend->event = event_new(tr_watchdir_get_event_base(handle), -1, EV_PERSIST, &tr_watchdir_generic_on_event, handle); + if (backend->event == nullptr) { auto const error_code = errno; tr_logAddError(fmt::format( diff --git a/libtransmission/watchdir-inotify.cc b/libtransmission/watchdir-inotify.cc index 29ae82ff3..30e29a3cd 100644 --- a/libtransmission/watchdir-inotify.cc +++ b/libtransmission/watchdir-inotify.cc @@ -99,7 +99,8 @@ static void tr_watchdir_inotify_on_event(struct bufferevent* event, void* contex } /* Consume entire name into buffer */ - if ((nread = bufferevent_read(event, name, ev.len)) == (size_t)-1) + nread = bufferevent_read(event, name, ev.len); + if (nread == static_cast(-1)) { auto const error_code = errno; tr_logAddError(fmt::format( diff --git a/qt/AboutDialog.cc b/qt/AboutDialog.cc index 961206c96..898f5d870 100644 --- a/qt/AboutDialog.cc +++ b/qt/AboutDialog.cc @@ -61,5 +61,5 @@ void AboutDialog::showCredits() void AboutDialog::showLicense() { - Utils::openDialog(license_dialog_, this); + Utils::openDialog(license_dialog_, this); // NOLINT clang-analyzer-cplusplus.NewDelete } diff --git a/qt/Session.cc b/qt/Session.cc index 31f25ae49..ee8ccc8ed 100644 --- a/qt/Session.cc +++ b/qt/Session.cc @@ -815,28 +815,27 @@ RpcResponseFuture Session::exec(std::string_view method, tr_variant* args) void Session::updateStats(tr_variant* d, tr_session_stats* stats) { - auto value = dictFind(d, TR_KEY_uploadedBytes); - if (value) + if (auto const value = dictFind(d, TR_KEY_uploadedBytes); value) { stats->uploadedBytes = *value; } - if ((value = dictFind(d, TR_KEY_downloadedBytes))) + if (auto const value = dictFind(d, TR_KEY_downloadedBytes); value) { stats->downloadedBytes = *value; } - if ((value = dictFind(d, TR_KEY_filesAdded))) + if (auto const value = dictFind(d, TR_KEY_filesAdded); value) { stats->filesAdded = *value; } - if ((value = dictFind(d, TR_KEY_sessionCount))) + if (auto const value = dictFind(d, TR_KEY_sessionCount); value) { stats->sessionCount = *value; } - if ((value = dictFind(d, TR_KEY_secondsActive))) + if (auto const value = dictFind(d, TR_KEY_secondsActive); value) { stats->secondsActive = *value; } diff --git a/qt/TrackerDelegate.cc b/qt/TrackerDelegate.cc index 8cc669662..900688d37 100644 --- a/qt/TrackerDelegate.cc +++ b/qt/TrackerDelegate.cc @@ -174,7 +174,6 @@ QString timeToStringRounded(int seconds) QString TrackerDelegate::getText(TrackerInfo const& inf) const { - QString key; QString str; auto const err_markup_begin = QStringLiteral(""); auto const err_markup_end = QStringLiteral(""); @@ -198,11 +197,6 @@ QString TrackerDelegate::getText(TrackerInfo const& inf) const auto const url = QUrl(inf.st.announce); str += QStringLiteral("%1:%2").arg(url.host()).arg(url.port(80)); - if (!key.isEmpty()) - { - str += QStringLiteral(" - ") + key; - } - str += inf.st.is_backup ? QStringLiteral("") : QStringLiteral(""); // announce & scrape info diff --git a/qt/Utils.h b/qt/Utils.h index 53297dbe9..5542967dd 100644 --- a/qt/Utils.h +++ b/qt/Utils.h @@ -63,7 +63,7 @@ public: { if (dialog.isNull()) { - dialog = new DialogT(std::forward(args)...); + dialog = new DialogT(std::forward(args)...); // NOLINT clang-analyzer-cplusplus.NewDelete dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->show(); }