Merge pull request #4316 from ttaubert/issue-4277-linear-map-len
reset LinearMap.size when expanding buckets
This commit is contained in:
commit
96ba9def35
@ -173,6 +173,7 @@ pub mod linear {
|
||||
let mut old_buckets = vec::from_fn(new_capacity, |_i| None);
|
||||
self.buckets <-> old_buckets;
|
||||
|
||||
self.size = 0;
|
||||
for uint::range(0, old_capacity) |i| {
|
||||
let mut bucket = None;
|
||||
bucket <-> old_buckets[i];
|
||||
@ -583,4 +584,22 @@ pub mod test {
|
||||
|
||||
assert m1 == m2;
|
||||
}
|
||||
|
||||
#[test]
|
||||
pub fn test_expand() {
|
||||
let mut m = ~LinearMap();
|
||||
|
||||
assert m.len() == 0;
|
||||
assert m.is_empty();
|
||||
|
||||
let mut i = 0u;
|
||||
let old_resize_at = m.resize_at;
|
||||
while old_resize_at == m.resize_at {
|
||||
m.insert(i, i);
|
||||
i += 1;
|
||||
}
|
||||
|
||||
assert m.len() == i;
|
||||
assert !m.is_empty();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user