Remove duplicate lookup in get_or_insert_inner (#273)

This commit is contained in:
Gnome!
2025-02-23 13:02:04 +00:00
committed by GitHub
parent ff7bd4a9ee
commit 5ba5170c91

View File

@@ -158,32 +158,30 @@ impl Songbird {
} }
fn get_or_insert_inner(&self, guild_id: GuildId) -> Arc<Mutex<Call>> { fn get_or_insert_inner(&self, guild_id: GuildId) -> Arc<Mutex<Call>> {
self.get(guild_id).unwrap_or_else(|| { self.calls
self.calls .entry(guild_id)
.entry(guild_id) .or_insert_with(|| {
.or_insert_with(|| { let info = self
let info = self .client_data
.client_data .get()
.get() .expect("Manager has not been initialised");
.expect("Manager has not been initialised");
let shard = shard_id(guild_id.0.get(), info.shard_count); let shard = shard_id(guild_id.0.get(), info.shard_count);
let shard_handle = self let shard_handle = self
.sharder .sharder
.get_shard(shard) .get_shard(shard)
.expect("Failed to get shard handle: shard_count incorrect?"); .expect("Failed to get shard handle: shard_count incorrect?");
let call = Call::from_config( let call = Call::from_config(
guild_id, guild_id,
shard_handle, shard_handle,
info.user_id, info.user_id,
self.config.read().clone(), self.config.read().clone(),
); );
Arc::new(Mutex::new(call)) Arc::new(Mutex::new(call))
}) })
.clone() .clone()
})
} }
/// Creates an iterator for all [`Call`]s currently managed. /// Creates an iterator for all [`Call`]s currently managed.