From 072bb0322c043771a95c781bbc5bad85e8c55c46 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Sun, 28 Aug 2022 16:17:07 -0500 Subject: [PATCH] refactor: remove tr_quark_get_string() (#3728) --- gtk/Application.cc | 4 +++- libtransmission/interned-string.h | 8 ++++---- libtransmission/quark.cc | 12 ------------ libtransmission/quark.h | 5 ----- libtransmission/rpc-server.cc | 6 +++--- libtransmission/rpcimpl.cc | 3 +-- libtransmission/variant.cc | 8 +++++--- qt/RpcClient.cc | 4 +--- qt/Session.cc | 4 +--- tests/libtransmission/quark-test.cc | 9 ++------- 10 files changed, 20 insertions(+), 43 deletions(-) diff --git a/gtk/Application.cc b/gtk/Application.cc index 7f3046ef1..9fc694e40 100644 --- a/gtk/Application.cc +++ b/gtk/Application.cc @@ -1168,7 +1168,9 @@ void Application::Impl::on_prefs_changed(tr_quark const key) { bool const b = gtr_pref_flag_get(key); tr_sessionUseAltSpeed(tr, b); - gtr_action_set_toggled(tr_quark_get_string(key), b); + auto const key_sv = tr_quark_get_string_view(key); + auto const key_ustr = Glib::ustring{ std::data(key_sv), std::size(key_sv) }; + gtr_action_set_toggled(key_ustr, b); break; } diff --git a/libtransmission/interned-string.h b/libtransmission/interned-string.h index dd224748d..18abeb797 100644 --- a/libtransmission/interned-string.h +++ b/libtransmission/interned-string.h @@ -50,14 +50,14 @@ public: { return quark_; } - [[nodiscard]] char const* c_str() const - { - return tr_quark_get_string(quark_); - } [[nodiscard]] std::string_view sv() const { return tr_quark_get_string_view(quark_); } + [[nodiscard]] char const* c_str() const + { + return std::data(sv()); // tr_quark strs are always zero-terminated + } [[nodiscard]] auto data() const { diff --git a/libtransmission/quark.cc b/libtransmission/quark.cc index be11524af..a1932c175 100644 --- a/libtransmission/quark.cc +++ b/libtransmission/quark.cc @@ -481,15 +481,3 @@ std::string_view tr_quark_get_string_view(tr_quark q) { return q < TR_N_KEYS ? my_static[q] : my_runtime[q - TR_N_KEYS]; } - -char const* tr_quark_get_string(tr_quark q, size_t* len) -{ - auto const tmp = tr_quark_get_string_view(q); - - if (len != nullptr) - { - *len = std::size(tmp); - } - - return std::data(tmp); -} diff --git a/libtransmission/quark.h b/libtransmission/quark.h index 4b19583f5..5592db260 100644 --- a/libtransmission/quark.h +++ b/libtransmission/quark.h @@ -430,11 +430,6 @@ enum */ [[nodiscard]] std::optional tr_quark_lookup(std::string_view key); -/** - * Get the string that corresponds to the specified quark - */ -[[nodiscard]] char const* tr_quark_get_string(tr_quark quark, size_t* len = nullptr); - /** * Get the string view that corresponds to the specified quark. * diff --git a/libtransmission/rpc-server.cc b/libtransmission/rpc-server.cc index dd67eddde..83f7df39c 100644 --- a/libtransmission/rpc-server.cc +++ b/libtransmission/rpc-server.cc @@ -618,7 +618,7 @@ static bool bindUnixSocket( #ifdef _WIN32 tr_logAddError(fmt::format( _("Unix sockets are unsupported on Windows. Please change '{key}' in your settings."), - fmt::arg("key", tr_quark_get_string(TR_KEY_rpc_bind_address)))); + fmt::arg("key", tr_quark_get_string_view(TR_KEY_rpc_bind_address)))); return false; #else struct sockaddr_un addr; @@ -883,7 +883,7 @@ void tr_rpc_server::setAntiBruteForceEnabled(bool enabled) noexcept static void missing_settings_key(tr_quark const q) { - tr_logAddDebug(fmt::format("Couldn't find settings key '{}'", tr_quark_get_string(q))); + tr_logAddDebug(fmt::format("Couldn't find settings key '{}'", tr_quark_get_string_view(q))); } tr_rpc_server::tr_rpc_server(tr_session* session_in, tr_variant* settings) @@ -1066,7 +1066,7 @@ tr_rpc_server::tr_rpc_server(tr_session* session_in, tr_variant* settings) { tr_logAddWarn(fmt::format( _("The '{key}' setting is '{value}' but must be an IPv4 or IPv6 address or a Unix socket path. Using default value '0.0.0.0'"), - fmt::format("key", tr_quark_get_string(key)), + fmt::format("key", tr_quark_get_string_view(key)), fmt::format("value", sv))); bindAddress->set_inaddr_any(); } diff --git a/libtransmission/rpcimpl.cc b/libtransmission/rpcimpl.cc index e725a110a..23419baf5 100644 --- a/libtransmission/rpcimpl.cc +++ b/libtransmission/rpcimpl.cc @@ -2348,8 +2348,7 @@ static char const* sessionGet(tr_session* s, tr_variant* args_in, tr_variant* ar continue; } - auto const field_id = tr_quark_lookup(field_name); - if (field_id) + if (auto const field_id = tr_quark_lookup(field_name); field_id) { addSessionField(s, args_out, *field_id); } diff --git a/libtransmission/variant.cc b/libtransmission/variant.cc index b616d98b2..7809aa357 100644 --- a/libtransmission/variant.cc +++ b/libtransmission/variant.cc @@ -91,7 +91,9 @@ static void tr_variant_string_set_quark(struct tr_variant_string* str, tr_quark tr_variant_string_clear(str); str->type = TR_STRING_TYPE_QUARK; - str->str.str = tr_quark_get_string(quark, &str->len); + auto const sv = tr_quark_get_string_view(quark); + str->str.str = std::data(sv); + str->len = std::size(sv); } static void tr_variant_string_set_string_view(struct tr_variant_string* str, std::string_view in) @@ -725,7 +727,7 @@ protected: sortbuf.resize(n); for (size_t i = 0; i < n; ++i) { - sortbuf[i] = { tr_quark_get_string(children[i].key), i }; + sortbuf[i] = { tr_quark_get_string_view(children[i].key), i }; } std::sort(std::begin(sortbuf), std::end(sortbuf), [](ByKey const& a, ByKey const& b) { return a.key < b.key; }); @@ -1079,7 +1081,7 @@ void tr_variantMergeDicts(tr_variant* target, tr_variant const* source) } else { - tr_logAddDebug(fmt::format("tr_variantMergeDicts skipping '{}'", tr_quark_get_string(key))); + tr_logAddDebug(fmt::format("tr_variantMergeDicts skipping '{}'", tr_quark_get_string_view(key))); } } } diff --git a/qt/RpcClient.cc b/qt/RpcClient.cc index 784352478..81fa6f39f 100644 --- a/qt/RpcClient.cc +++ b/qt/RpcClient.cc @@ -95,9 +95,7 @@ QUrl const& RpcClient::url() const RpcResponseFuture RpcClient::exec(tr_quark method, tr_variant* args) { - auto len = size_t{}; - auto const* str = tr_quark_get_string(method, &len); - return exec(std::string_view(str, len), args); + return exec(tr_quark_get_string_view(method), args); } RpcResponseFuture RpcClient::exec(std::string_view method, tr_variant* args) diff --git a/qt/Session.cc b/qt/Session.cc index 7c0deba84..aa4005feb 100644 --- a/qt/Session.cc +++ b/qt/Session.cc @@ -603,9 +603,7 @@ std::vector const& Session::getKeyNames(TorrentProperties prop auto const append = [&names](tr_quark key) { - size_t len = {}; - char const* str = tr_quark_get_string(key, &len); - names.emplace_back(str, len); + names.emplace_back(tr_quark_get_string_view(key)); }; switch (props) diff --git a/tests/libtransmission/quark-test.cc b/tests/libtransmission/quark-test.cc index ef1826be4..45e871045 100644 --- a/tests/libtransmission/quark-test.cc +++ b/tests/libtransmission/quark-test.cc @@ -18,10 +18,7 @@ protected: template std::string quarkGetString(T i) { - size_t len; - char const* const str = tr_quark_get_string(tr_quark(i), &len); - EXPECT_EQ(strlen(str), len); - return std::string(str, len); + return std::string{ tr_quark_get_string_view(tr_quark(i)) }; } }; @@ -40,7 +37,5 @@ TEST_F(QuarkTest, newQuarkByStringView) { auto constexpr UniqueString = std::string_view{ "this string is not a predefined quark" }; auto const q = tr_quark_new(UniqueString); - auto len = size_t{}; - EXPECT_EQ(UniqueString, tr_quark_get_string(q, &len)); - EXPECT_EQ(std::size(UniqueString), len); + EXPECT_EQ(UniqueString, tr_quark_get_string_view(q)); }