mirror of
https://github.com/servo/servo.git
synced 2025-08-04 05:00:08 +01:00
Include map length in diagnostics
This commit is contained in:
parent
f7f898b3b3
commit
a10329f8ff
3 changed files with 11 additions and 2 deletions
|
@ -166,7 +166,7 @@ impl<K: Hash + Eq, V, S: BuildHasher> DiagnosticHashMap<K, V, S>
|
||||||
canary: usize,
|
canary: usize,
|
||||||
canary_addr: *const usize,
|
canary_addr: *const usize,
|
||||||
position: usize,
|
position: usize,
|
||||||
count: usize,
|
count: usize
|
||||||
) {
|
) {
|
||||||
use ::std::ffi::CString;
|
use ::std::ffi::CString;
|
||||||
let key = b"HashMapJournal\0";
|
let key = b"HashMapJournal\0";
|
||||||
|
@ -179,9 +179,10 @@ impl<K: Hash + Eq, V, S: BuildHasher> DiagnosticHashMap<K, V, S>
|
||||||
}
|
}
|
||||||
|
|
||||||
panic!(
|
panic!(
|
||||||
concat!("HashMap Corruption (sz={}, cap={}, pairsz={}, hash={:#x}, cnry={:#x}, ",
|
concat!("HashMap Corruption (sz={}, buffer_hash_sz={}, cap={}, pairsz={}, hash={:#x}, cnry={:#x}, ",
|
||||||
"count={}, last_pos={}, base_addr={:?}, cnry_addr={:?}, jrnl_len={})"),
|
"count={}, last_pos={}, base_addr={:?}, cnry_addr={:?}, jrnl_len={})"),
|
||||||
self.map.len(),
|
self.map.len(),
|
||||||
|
self.map.diagnostic_count_hashes(),
|
||||||
self.map.raw_capacity(),
|
self.map.raw_capacity(),
|
||||||
::std::mem::size_of::<(K, (usize, V))>(),
|
::std::mem::size_of::<(K, (usize, V))>(),
|
||||||
hash,
|
hash,
|
||||||
|
|
|
@ -1257,6 +1257,10 @@ impl<K, V, S> HashMap<K, V, S>
|
||||||
debug_assert!(elems_left == 0 || bucket.index() != start_index);
|
debug_assert!(elems_left == 0 || bucket.index() != start_index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn diagnostic_count_hashes(&self) -> usize {
|
||||||
|
self.table.diagnostic_count_hashes()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<K, V, S> PartialEq for HashMap<K, V, S>
|
impl<K, V, S> PartialEq for HashMap<K, V, S>
|
||||||
|
|
|
@ -896,6 +896,10 @@ impl<K, V> RawTable<K, V> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn diagnostic_count_hashes(&self) -> usize {
|
||||||
|
(0..self.capacity()).filter(|&i| unsafe { *self.raw_bucket_at(i).hash() != EMPTY_BUCKET }).count()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn iter(&self) -> Iter<K, V> {
|
pub fn iter(&self) -> Iter<K, V> {
|
||||||
Iter {
|
Iter {
|
||||||
iter: self.raw_buckets(),
|
iter: self.raw_buckets(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue