diff --git a/gtk/Application.cc b/gtk/Application.cc index 4c2c671a2..9e535c8b4 100644 --- a/gtk/Application.cc +++ b/gtk/Application.cc @@ -423,9 +423,8 @@ bool Application::Impl::on_rpc_changed_idle(tr_rpc_callback_type type, int torre for (int i = 0; tr_variantDictChild(&tmp, i, &key, &newval); ++i) { bool changed; - tr_variant const* oldval = tr_variantDictFind(oldvals, key); - if (oldval == nullptr) + if (tr_variant const* oldval = tr_variantDictFind(oldvals, key); oldval == nullptr) { changed = true; } @@ -1045,20 +1044,15 @@ void Application::Impl::on_prefs_changed(tr_quark const key) break; case TR_KEY_show_notification_area_icon: + if (bool const show = gtr_pref_flag_get(key); show && icon_ == nullptr) { - bool const show = gtr_pref_flag_get(key); - - if (show && icon_ == nullptr) - { - icon_ = std::make_unique(*wind_, core_); - } - else if (!show && icon_ != nullptr) - { - icon_.reset(); - } - - break; + icon_ = std::make_unique(*wind_, core_); } + else if (!show && icon_ != nullptr) + { + icon_.reset(); + } + break; case TR_KEY_speed_limit_down_enabled: tr_sessionLimitSpeed(tr, TR_DOWN, gtr_pref_flag_get(key)); @@ -1359,9 +1353,8 @@ tr_torrent* Application::Impl::get_first_selected_torrent() const { tr_torrent* tor = nullptr; Glib::RefPtr m; - auto const l = sel_->get_selected_rows(m); - if (!l.empty()) + if (auto const l = sel_->get_selected_rows(m); !l.empty()) { if (auto iter = m->get_iter(l.front()); iter) { diff --git a/gtk/FileList.cc b/gtk/FileList.cc index 8f3b15430..dc747d223 100644 --- a/gtk/FileList.cc +++ b/gtk/FileList.cc @@ -556,9 +556,8 @@ void renderDownload(Gtk::CellRenderer* renderer, Gtk::TreeModel::iterator const& void renderPriority(Gtk::CellRenderer* renderer, Gtk::TreeModel::iterator const& iter) { Glib::ustring text; - auto const priority = iter->get_value(file_cols.priority); - switch (priority) + switch (auto const priority = iter->get_value(file_cols.priority); priority) { case TR_PRI_HIGH: text = _("High"); diff --git a/gtk/MainWindow.cc b/gtk/MainWindow.cc index f2bb75359..a23a0c422 100644 --- a/gtk/MainWindow.cc +++ b/gtk/MainWindow.cc @@ -588,9 +588,7 @@ void MainWindow::Impl::updateStats() auto const* const session = core_->get_session(); /* update the stats */ - auto const pch = gtr_pref_string_get(TR_KEY_statusbar_stats); - - if (pch == "session-ratio") + if (auto const pch = gtr_pref_string_get(TR_KEY_statusbar_stats); pch == "session-ratio") { tr_sessionGetStats(session, &stats); buf = gtr_sprintf(_("Ratio: %s"), tr_strlratio(stats.ratio)); diff --git a/gtk/MakeDialog.cc b/gtk/MakeDialog.cc index 98b435b87..7b7188799 100644 --- a/gtk/MakeDialog.cc +++ b/gtk/MakeDialog.cc @@ -390,11 +390,10 @@ void MakeDialog::Impl::on_drag_data_received( guint time_) { bool success = false; - auto const uris = selection_data.get_uris(); - if (!uris.empty()) + if (auto const uris = selection_data.get_uris(); !uris.empty()) { - auto const uri = uris.front(); + auto const& uri = uris.front(); auto const filename = Glib::filename_from_uri(uri); if (Glib::file_test(filename, Glib::FILE_TEST_IS_DIR)) diff --git a/gtk/Utils.cc b/gtk/Utils.cc index 04e7442d3..94e2739f5 100644 --- a/gtk/Utils.cc +++ b/gtk/Utils.cc @@ -421,11 +421,11 @@ Gtk::ComboBox* gtr_combo_box_new_enum(std::vector> { auto store = Gtk::ListStore::create(enum_combo_cols); - for (auto const& item : items) + for (auto const& [label, value] : items) { auto const iter = store->append(); - (*iter)[enum_combo_cols.value] = item.second; - (*iter)[enum_combo_cols.label] = item.first; + (*iter)[enum_combo_cols.value] = value; + (*iter)[enum_combo_cols.label] = label; } auto w = Gtk::make_managed(static_cast const&>(store)); diff --git a/libtransmission/announcer-http.cc b/libtransmission/announcer-http.cc index 66186d66b..93117a640 100644 --- a/libtransmission/announcer-http.cc +++ b/libtransmission/announcer-http.cc @@ -86,8 +86,7 @@ static std::string announce_url_new(tr_session const* session, tr_announce_reque evbuffer_add_printf(buf, "&corrupt=%" PRIu64, req->corrupt); } - char const* str = get_event_string(req); - if (!tr_str_is_empty(str)) + if (char const* str = get_event_string(req); !tr_str_is_empty(str)) { evbuffer_add_printf(buf, "&event=%s", str); } diff --git a/libtransmission/announcer.cc b/libtransmission/announcer.cc index 89ea048a2..972023e08 100644 --- a/libtransmission/announcer.cc +++ b/libtransmission/announcer.cc @@ -168,7 +168,6 @@ struct tr_announcer explicit tr_announcer(tr_session* session_in) : session{ session_in } , upkeep_timer{ evtimer_new(session_in->event_base, onUpkeepTimer, this) } - , key{ tr_rand_int(INT_MAX) } { scheduleNextUpdate(); } @@ -188,7 +187,7 @@ struct tr_announcer tr_session* const session; event* const upkeep_timer; - int const key; + int const key = tr_rand_int(INT_MAX); time_t tau_upkeep_at = 0; }; @@ -591,8 +590,7 @@ static void publishMessage(tr_tier* tier, std::string_view msg, TrackerEventType event.messageType = type; event.text = msg; - auto* const current_tracker = tier->currentTracker(); - if (current_tracker != nullptr) + if (auto const* const current_tracker = tier->currentTracker(); current_tracker != nullptr) { event.announce_url = current_tracker->announce_url; } @@ -865,7 +863,7 @@ void tr_announcerRemoveTorrent(tr_announcer* announcer, tr_torrent* tor) return; } - for (auto& tier : ta->tiers) + for (auto const& tier : ta->tiers) { if (tier.isRunning) { @@ -1405,7 +1403,7 @@ static void multiscrape(tr_announcer* announcer, std::vector const& ti /* otherwise, if there's room for another request, build a new one */ if (!found && request_count < MaxScrapesPerUpkeep) { - auto* const req = &requests[request_count++]; + auto* const req = &requests[request_count]; req->scrape_url = scrape_info->scrape_url; tier->buildLogName(req->log_name, sizeof(req->log_name)); @@ -1413,6 +1411,8 @@ static void multiscrape(tr_announcer* announcer, std::vector const& ti ++req->info_hash_count; tier->isScraping = true; tier->lastScrapeStartTime = now; + + ++request_count; } } diff --git a/libtransmission/handshake.cc b/libtransmission/handshake.cc index b9f0081c0..f3b945200 100644 --- a/libtransmission/handshake.cc +++ b/libtransmission/handshake.cc @@ -26,11 +26,11 @@ using namespace std::literals; /* enable LibTransmission extension protocol */ -#define ENABLE_LTEP * / +#define ENABLE_LTEP /* fast extensions */ -#define ENABLE_FAST * / +#define ENABLE_FAST /* DHT */ -#define ENABLE_DHT * / +#define ENABLE_DHT /*** **** diff --git a/libtransmission/torrent.h b/libtransmission/torrent.h index 2f9e6dc74..228ef0b13 100644 --- a/libtransmission/torrent.h +++ b/libtransmission/torrent.h @@ -151,55 +151,55 @@ public: [[nodiscard]] constexpr auto blockCount() const { - return blockInfo().blockCount(); + return metainfo_.blockCount(); } [[nodiscard]] constexpr auto blockOf(uint64_t offset) const { - return blockInfo().blockOf(offset); + return metainfo_.blockOf(offset); } [[nodiscard]] constexpr auto blockOf(tr_piece_index_t piece, uint32_t offset, uint32_t length = 0) const { - return blockInfo().blockOf(piece, offset, length); + return metainfo_.blockOf(piece, offset, length); } [[nodiscard]] constexpr auto blockSize() const { - return blockInfo().blockSize(); + return metainfo_.blockSize(); } [[nodiscard]] constexpr auto blockSize(tr_block_index_t block) const { - return blockInfo().blockSize(block); + return metainfo_.blockSize(block); } [[nodiscard]] constexpr auto blockSpanForPiece(tr_piece_index_t piece) const { - return blockInfo().blockSpanForPiece(piece); + return metainfo_.blockSpanForPiece(piece); } [[nodiscard]] constexpr auto offset(tr_piece_index_t piece, uint32_t offset, uint32_t length = 0) const { - return blockInfo().offset(piece, offset, length); + return metainfo_.offset(piece, offset, length); } [[nodiscard]] constexpr auto pieceCount() const { - return blockInfo().pieceCount(); + return metainfo_.pieceCount(); } [[nodiscard]] constexpr auto pieceForBlock(tr_block_index_t block) const { - return blockInfo().pieceForBlock(block); + return metainfo_.pieceForBlock(block); } [[nodiscard]] constexpr auto pieceOf(uint64_t offset) const { - return blockInfo().pieceOf(offset); + return metainfo_.pieceOf(offset); } [[nodiscard]] constexpr auto pieceSize() const { - return blockInfo().pieceSize(); + return metainfo_.pieceSize(); } [[nodiscard]] constexpr auto pieceSize(tr_piece_index_t piece) const { - return blockInfo().pieceSize(piece); + return metainfo_.pieceSize(piece); } [[nodiscard]] constexpr auto totalSize() const { - return blockInfo().totalSize(); + return metainfo_.totalSize(); } /// COMPLETION diff --git a/libtransmission/utils.cc b/libtransmission/utils.cc index 6d2cd1641..cd87fb740 100644 --- a/libtransmission/utils.cc +++ b/libtransmission/utils.cc @@ -298,7 +298,7 @@ uint8_t* tr_loadFile(char const* path, size_t* size, tr_error** error) { tr_logAddError(err_fmt, path, my_error->message); tr_sys_file_close(fd, nullptr); - free(buf); + tr_free(buf); tr_error_propagate(error, &my_error); return nullptr; } diff --git a/libtransmission/variant.cc b/libtransmission/variant.cc index caa0e4fbd..d860213d9 100644 --- a/libtransmission/variant.cc +++ b/libtransmission/variant.cc @@ -829,6 +829,7 @@ protected: } } +private: // When walking `v`'s children, this is the index of the next child size_t child_index = 0; diff --git a/qt/MainWindow.cc b/qt/MainWindow.cc index fc3e5a39b..b0042a1fd 100644 --- a/qt/MainWindow.cc +++ b/qt/MainWindow.cc @@ -262,10 +262,10 @@ MainWindow::MainWindow(Session& session, Prefs& prefs, TorrentModel& model, bool // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) auto* action_group = new QActionGroup(this); - for (auto const& mode : sort_modes) + for (auto const& [action, mode] : sort_modes) { - mode.first->setProperty(SortModeKey, mode.second); - action_group->addAction(mode.first); + action->setProperty(SortModeKey, mode); + action_group->addAction(action); } connect(action_group, &QActionGroup::triggered, this, &MainWindow::onSortModeChanged); @@ -1605,8 +1605,8 @@ bool MainWindow::event(QEvent* e) return QMainWindow::event(e); } - QString const text = QGuiApplication::clipboard()->text().trimmed(); - if (text.endsWith(QStringLiteral(".torrent"), Qt::CaseInsensitive) || + if (auto const text = QGuiApplication::clipboard()->text().trimmed(); + text.endsWith(QStringLiteral(".torrent"), Qt::CaseInsensitive) || text.startsWith(QStringLiteral("magnet:"), Qt::CaseInsensitive)) { for (QString const& entry : text.split(QLatin1Char('\n'))) diff --git a/qt/RpcQueue.h b/qt/RpcQueue.h index 37be9e120..2891c3a04 100644 --- a/qt/RpcQueue.h +++ b/qt/RpcQueue.h @@ -70,8 +70,8 @@ private: // normal closure, takes response and returns new future template< typename Func, - typename std::enable_if< - std::is_same_v, RpcResponseFuture>>::type* = nullptr> + typename std::enable_if_t, RpcResponseFuture>>* = + nullptr> QueuedFunction normalizeFunc(Func const& func) const { return [func](RpcResponseFuture const& r) @@ -83,7 +83,7 @@ private: // closure without argument (first step), takes nothing and returns new future template< typename Func, - typename std::enable_if, RpcResponseFuture>>::type* = nullptr> + typename std::enable_if_t, RpcResponseFuture>>* = nullptr> QueuedFunction normalizeFunc(Func const& func) const { return [func](RpcResponseFuture const&) @@ -95,7 +95,7 @@ private: // closure without return value ("auxiliary"), takes response and returns nothing template< typename Func, - typename std::enable_if, void>>::type* = nullptr> + typename std::enable_if_t, void>>* = nullptr> QueuedFunction normalizeFunc(Func const& func) const { return [func](RpcResponseFuture const& r) @@ -106,7 +106,7 @@ private: } // closure without argument and return value, takes nothing and returns nothing -- next function will also get nothing - template, void>>::type* = nullptr> + template, void>>* = nullptr> QueuedFunction normalizeFunc(Func const& func) const { return [func](RpcResponseFuture const&) @@ -119,7 +119,7 @@ private: // normal error handler, takes last response template< typename Func, - typename std::enable_if, void>>::type* = nullptr> + typename std::enable_if_t, void>>* = nullptr> ErrorHandlerFunction normalizeErrorHandler(Func const& func) const { return [func](RpcResponseFuture const& r) @@ -129,7 +129,7 @@ private: } // error handler without an argument, takes nothing - template, void>>::type* = nullptr> + template, void>>* = nullptr> ErrorHandlerFunction normalizeErrorHandler(Func const& func) const { return [func](RpcResponseFuture const&) diff --git a/qt/Session.cc b/qt/Session.cc index 32ee9167e..0c5944dfe 100644 --- a/qt/Session.cc +++ b/qt/Session.cc @@ -1115,9 +1115,9 @@ void Session::onDuplicatesTimer() duplicates.swap(duplicates_); QStringList lines; - for (auto it : duplicates) + for (auto [dupe, original] : duplicates) { - lines.push_back(tr("%1 (copy of %2)").arg(it.first).arg(it.second.left(7))); + lines.push_back(tr("%1 (copy of %2)").arg(dupe).arg(original.left(7))); } if (!lines.empty()) diff --git a/qt/TorrentModel.cc b/qt/TorrentModel.cc index ca551960f..fe777f328 100644 --- a/qt/TorrentModel.cc +++ b/qt/TorrentModel.cc @@ -342,10 +342,10 @@ std::optional TorrentModel::getRow(int id) const { std::optional row; - auto const it = std::equal_range(torrents_.begin(), torrents_.end(), id, TorrentIdLessThan()); - if (it.first != it.second) + auto const [begin, end] = std::equal_range(torrents_.begin(), torrents_.end(), id, TorrentIdLessThan()); + if (begin != end) { - row = std::distance(torrents_.begin(), it.first); + row = std::distance(torrents_.begin(), begin); assert(torrents_[*row]->id() == id); } @@ -425,9 +425,9 @@ std::vector TorrentModel::getSpans(torrent_ids_t const& id void TorrentModel::rowsEmitChanged(torrent_ids_t const& ids) { - for (auto const& span : getSpans(ids)) + for (auto const& [first, last] : getSpans(ids)) { - emit dataChanged(index(span.first), index(span.second)); + emit dataChanged(index(first), index(last)); } } @@ -462,10 +462,10 @@ void TorrentModel::rowsRemove(torrents_t const& torrents) auto const& spans = getSpans(getIds(torrents.begin(), torrents.end())); for (auto it = spans.rbegin(), end = spans.rend(); it != end; ++it) { - auto const& span = *it; + auto const& [first, last] = *it; - beginRemoveRows(QModelIndex(), span.first, span.second); - torrents_.erase(torrents_.begin() + span.first, torrents_.begin() + span.second + 1); + beginRemoveRows(QModelIndex(), first, last); + torrents_.erase(torrents_.begin() + first, torrents_.begin() + last + 1); endRemoveRows(); } diff --git a/qt/VariantHelpers.h b/qt/VariantHelpers.h index 3f96d3c86..099bc44da 100644 --- a/qt/VariantHelpers.h +++ b/qt/VariantHelpers.h @@ -28,7 +28,7 @@ namespace trqt namespace variant_helpers { -template>::type* = nullptr> +template>* = nullptr> auto getValue(tr_variant const* variant) { std::optional ret; @@ -43,9 +43,9 @@ auto getValue(tr_variant const* variant) template< typename T, - typename std::enable_if< - std::is_same_v || std::is_same_v || std::is_same_v || - std::is_same_v>::type* = nullptr> + typename std::enable_if_t< + std::is_same_v || std::is_same_v || std::is_same_v || std::is_same_v>* = + nullptr> auto getValue(tr_variant const* variant) { std::optional ret; @@ -58,7 +58,7 @@ auto getValue(tr_variant const* variant) return ret; } -template>::type* = nullptr> +template>* = nullptr> auto getValue(tr_variant const* variant) { std::optional ret; @@ -71,7 +71,7 @@ auto getValue(tr_variant const* variant) return ret; } -template>::type* = nullptr> +template>* = nullptr> auto getValue(tr_variant const* variant) { std::optional ret; @@ -84,7 +84,7 @@ auto getValue(tr_variant const* variant) return ret; } -template>::type* = nullptr> +template>* = nullptr> auto getValue(tr_variant const* variant) { std::optional ret; @@ -100,8 +100,8 @@ auto getValue(tr_variant const* variant) template< typename C, typename T = typename C::value_type, - typename std::enable_if< - std::is_same_v || std::is_same_v> || std::is_same_v>>::type* = nullptr> + typename std::enable_if_t< + std::is_same_v || std::is_same_v> || std::is_same_v>>* = nullptr> auto getValue(tr_variant const* variant) { std::optional ret; diff --git a/utils/show.cc b/utils/show.cc index 2eb77396e..52f66e4e8 100644 --- a/utils/show.cc +++ b/utils/show.cc @@ -156,8 +156,7 @@ void showInfo(app_opts const& opts, tr_torrent_metainfo const& metainfo) *** **/ - auto const n_webseeds = metainfo.webseedCount(); - if (n_webseeds > 0) + if (auto const n_webseeds = metainfo.webseedCount(); n_webseeds > 0) { printf("\nWEBSEEDS\n\n"); @@ -242,8 +241,7 @@ void doScrape(tr_torrent_metainfo const& metainfo) // execute the http scrape curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); curl_easy_setopt(curl, CURLOPT_TIMEOUT, TimeoutSecs); - auto const res = curl_easy_perform(curl); - if (res != CURLE_OK) + if (auto const res = curl_easy_perform(curl); res != CURLE_OK) { printf("error: %s\n", curl_easy_strerror(res)); continue;