We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 72570c5 commit 211823eCopy full SHA for 211823e
1 file changed
crates/vm/src/dict_inner.rs
@@ -603,9 +603,13 @@ impl<T: Clone> Dict<T> {
603
let ret = 'outer: loop {
604
let (entry_key, ret) = {
605
let inner = lock.take().unwrap_or_else(|| self.read());
606
- let idxs = idxs.get_or_insert_with(|| {
607
- GenIndexes::new(hash_value, (inner.indices.len() - 1) as i64)
608
- });
+ let mask = (inner.indices.len() - 1) as i64;
+ let idxs = idxs.get_or_insert_with(|| GenIndexes::new(hash_value, mask));
+ if idxs.mask != mask {
609
+ // Dict was resized since last probe, restart
610
+ *idxs = GenIndexes::new(hash_value, mask);
611
+ free_slot = None;
612
+ }
613
loop {
614
let index_index = idxs.next();
615
let index_entry = *unsafe {
0 commit comments