diff --git a/crates/lox-library/src/lib.rs b/crates/lox-library/src/lib.rs index ffa233b..ea99c32 100644 --- a/crates/lox-library/src/lib.rs +++ b/crates/lox-library/src/lib.rs @@ -552,16 +552,12 @@ impl BridgeAuth { // - third dissolve a spare bucket to create more available bridges let Some(replacement) = available_bridge.or_else(|| { self.bridge_table.unallocated_bridges.pop().or_else(|| { - // First get the bucketnums for the replacement bridge in case it is a spare - let mut bucketnums: Vec = Vec::new(); - for (bucketnum, _) in positions.iter() { - bucketnums.push(*bucketnum); - } let Some(spare) = self .bridge_table .spares .iter() - .find(|x| !bucketnums.contains(x)) + // in case bridge is a spare, avoid replacing it with itself + .find(|x| !positions.iter().any(|(bucketnum, _)| &bucketnum == x)) .cloned() else { return None;