Skip to content

Commit

Permalink
perf: remove more redundant scanning (pubgrub-rs#251)
Browse files Browse the repository at this point in the history
Doing the stronger version of pubgrub-rs#175 because it turns out to be important to cargo crates.
  • Loading branch information
Eh2406 authored Aug 22, 2024
1 parent eb528c3 commit 597bf9e
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/internal/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,9 @@ impl<DP: DependencyProvider> State<DP> {
Relation::AlmostSatisfied(package_almost) => {
// Add `package_almost` to the `unit_propagation_buffer` set.
// Putting items in `unit_propagation_buffer` more than once waste cycles,
// but so does checking for duplicates.
// In practice the most common pathology is adding the same package repeatedly.
// So we only check if it is duplicated with the last item.
if self.unit_propagation_buffer.last() != Some(&package_almost) {
// but so does allocating a hash map and hashing each item.
// In practice `unit_propagation_buffer` is small enough that we can just do a linear scan.
if !self.unit_propagation_buffer.contains(&package_almost) {
self.unit_propagation_buffer.push(package_almost.clone());
}
// Add (not term) to the partial solution with incompat as cause.
Expand Down

0 comments on commit 597bf9e

Please sign in to comment.