refactor: make tr_sessionInit() config_dir arg a string_view (#7939)

This commit is contained in:
Charles Kerr
2025-12-18 23:06:23 -06:00
committed by GitHub
parent 99af641738
commit 1a18462691
10 changed files with 16 additions and 13 deletions

View File

@@ -346,7 +346,7 @@ int tr_main(int argc, char* argv[])
return EXIT_FAILURE; return EXIT_FAILURE;
} }
auto* const h = tr_sessionInit(config_dir.c_str(), false, settings); auto* const h = tr_sessionInit(config_dir, false, settings);
auto* const ctor = tr_ctorNew(h); auto* const ctor = tr_ctorNew(h);
tr_ctorSetPaused(ctor, TR_FORCE, false); tr_ctorSetPaused(ctor, TR_FORCE, false);

View File

@@ -783,9 +783,9 @@ int tr_daemon::start([[maybe_unused]] bool foreground)
/* start the session */ /* start the session */
auto const* const cdir = this->config_dir_.c_str(); auto const* const cdir = this->config_dir_.c_str();
auto* session = tr_sessionInit(cdir, true, settings_); auto* session = tr_sessionInit(config_dir_, true, settings_);
tr_sessionSetRPCCallback(session, on_rpc_callback, this); tr_sessionSetRPCCallback(session, on_rpc_callback, this);
tr_logAddInfo(fmt::format(fmt::runtime(_("Loading settings from '{path}'")), fmt::arg("path", cdir))); tr_logAddInfo(fmt::format(fmt::runtime(_("Loading settings from '{path}'")), fmt::arg("path", config_dir_)));
tr_sessionSaveSettings(session, cdir, settings_); tr_sessionSaveSettings(session, cdir, settings_);
auto const* const settings_map = settings_.get_if<tr_variant::Map>(); auto const* const settings_map = settings_.get_if<tr_variant::Map>();

View File

@@ -614,7 +614,7 @@ void Application::Impl::on_startup()
} }
/* initialize the libtransmission session */ /* initialize the libtransmission session */
session = tr_sessionInit(config_dir_.c_str(), true, gtr_pref_get_all()); session = tr_sessionInit(config_dir_, true, gtr_pref_get_all());
gtr_pref_flag_set(TR_KEY_alt_speed_enabled, tr_sessionUsesAltSpeed(session)); gtr_pref_flag_set(TR_KEY_alt_speed_enabled, tr_sessionUsesAltSpeed(session));
gtr_pref_int_set(TR_KEY_peer_port, tr_sessionGetPeerPort(session)); gtr_pref_int_set(TR_KEY_peer_port, tr_sessionGetPeerPort(session));

View File

@@ -552,11 +552,10 @@ struct tr_session::init_data
std::condition_variable_any done_cv; std::condition_variable_any done_cv;
}; };
tr_session* tr_sessionInit(char const* config_dir, bool message_queueing_enabled, tr_variant const& client_settings) tr_session* tr_sessionInit(std::string_view const config_dir, bool message_queueing_enabled, tr_variant const& client_settings)
{ {
using namespace bandwidth_group_helpers; using namespace bandwidth_group_helpers;
TR_ASSERT(config_dir != nullptr);
TR_ASSERT(client_settings.holds_alternative<tr_variant::Map>()); TR_ASSERT(client_settings.holds_alternative<tr_variant::Map>());
tr_timeUpdate(time(nullptr)); tr_timeUpdate(time(nullptr));

View File

@@ -1213,7 +1213,10 @@ private:
friend size_t tr_sessionGetAltSpeed_KBps(tr_session const* session, tr_direction dir); friend size_t tr_sessionGetAltSpeed_KBps(tr_session const* session, tr_direction dir);
friend tr_port_forwarding_state tr_sessionGetPortForwarding(tr_session const* session); friend tr_port_forwarding_state tr_sessionGetPortForwarding(tr_session const* session);
friend tr_sched_day tr_sessionGetAltSpeedDay(tr_session const* session); friend tr_sched_day tr_sessionGetAltSpeedDay(tr_session const* session);
friend tr_session* tr_sessionInit(char const* config_dir, bool message_queueing_enabled, tr_variant const& client_settings); friend tr_session* tr_sessionInit(
std::string_view config_dir,
bool message_queueing_enabled,
tr_variant const& client_settings);
friend uint16_t tr_sessionGetPeerPort(tr_session const* session); friend uint16_t tr_sessionGetPeerPort(tr_session const* session);
friend uint16_t tr_sessionGetRPCPort(tr_session const* session); friend uint16_t tr_sessionGetRPCPort(tr_session const* session);
friend uint16_t tr_sessionSetPeerPortRandom(tr_session* session); friend uint16_t tr_sessionSetPeerPortRandom(tr_session* session);

View File

@@ -218,7 +218,7 @@ void tr_sessionSaveSettings(tr_session* session, char const* config_dir, tr_vari
* @see `tr_sessionLoadSettings()` * @see `tr_sessionLoadSettings()`
* @see `tr_getDefaultConfigDir()` * @see `tr_getDefaultConfigDir()`
*/ */
tr_session* tr_sessionInit(char const* config_dir, bool message_queueing_enabled, tr_variant const& settings); tr_session* tr_sessionInit(std::string_view config_dir, bool message_queueing_enabled, tr_variant const& settings);
/** @brief Update a session's settings from a benc dictionary /** @brief Update a session's settings from a benc dictionary
like to the one used in `tr_sessionInit()` */ like to the one used in `tr_sessionInit()` */

View File

@@ -561,7 +561,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
initUnits(); initUnits();
auto const default_config_dir = tr_getDefaultConfigDir("Transmission"); auto const default_config_dir = tr_getDefaultConfigDir("Transmission");
_fLib = tr_sessionInit(default_config_dir.c_str(), YES, settings); _fLib = tr_sessionInit(default_config_dir, YES, settings);
_fConfigDirectory = @(default_config_dir.c_str()); _fConfigDirectory = @(default_config_dir.c_str());
tr_sessionSetIdleLimitHitCallback(_fLib, onIdleLimitHit, (__bridge void*)(self)); tr_sessionSetIdleLimitHitCallback(_fLib, onIdleLimitHit, (__bridge void*)(self));

View File

@@ -371,8 +371,9 @@ void Session::start()
} }
else else
{ {
auto const settings = tr_sessionLoadSettings(config_dir_.toStdString()); auto config_dir = config_dir_.toStdString();
session_ = tr_sessionInit(config_dir_.toUtf8().constData(), true, settings); auto const settings = tr_sessionLoadSettings(config_dir);
session_ = tr_sessionInit(config_dir, true, settings);
rpc_.start(session_); rpc_.start(session_);

View File

@@ -313,7 +313,7 @@ TEST_F(SessionTest, honorsSettings)
{ {
settings_map->insert_or_assign(key, true); settings_map->insert_or_assign(key, true);
} }
auto* session = tr_sessionInit(sandboxDir().data(), false, settings); auto* session = tr_sessionInit(sandboxDir(), false, settings);
// confirm that these settings were enabled // confirm that these settings were enabled
EXPECT_TRUE(session->isPortRandom()); EXPECT_TRUE(session->isPortRandom());

View File

@@ -334,7 +334,7 @@ private:
settings_map->try_emplace(TR_KEY_dht_enabled, false); settings_map->try_emplace(TR_KEY_dht_enabled, false);
settings_map->try_emplace(TR_KEY_message_level, verbose_ ? TR_LOG_DEBUG : TR_LOG_ERROR); settings_map->try_emplace(TR_KEY_message_level, verbose_ ? TR_LOG_DEBUG : TR_LOG_ERROR);
return tr_sessionInit(sandboxDir().data(), !verbose_, settings); return tr_sessionInit(sandboxDir(), !verbose_, settings);
} }
static void sessionClose(tr_session* session) static void sessionClose(tr_session* session)