style: Use a HashSet in free-list check.

This commit is contained in:
Emilio Cobos Álvarez 2016-12-19 09:22:07 +01:00
parent e67ea42c3f
commit fc6bed28ff
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C

View file

@ -468,18 +468,19 @@ impl StrongRuleNode {
}
unsafe fn assert_free_list_has_no_duplicates_or_null(&self) {
assert!(cfg!(debug_assertions));
assert!(cfg!(debug_assertions), "This is an expensive check!");
use std::collections::HashSet;
let me = &*self.ptr;
assert!(me.is_root());
let mut current = self.ptr;
let mut seen = vec![];
let mut seen = HashSet::new();
while current != FREE_LIST_SENTINEL {
let next = (*current).next_free.load(Ordering::SeqCst);
assert!(!next.is_null());
assert!(!seen.contains(&next));
seen.push(next);
seen.insert(next);
current = next;
}