Skip to content

Commit 96ba9de

Browse files
committed
Merge pull request #4316 from ttaubert/issue-4277-linear-map-len
reset LinearMap.size when expanding buckets
2 parents eeec4a7 + 4b1d2dc commit 96ba9de

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/libcore/send_map.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ pub mod linear {
173173
let mut old_buckets = vec::from_fn(new_capacity, |_i| None);
174174
self.buckets <-> old_buckets;
175175

176+
self.size = 0;
176177
for uint::range(0, old_capacity) |i| {
177178
let mut bucket = None;
178179
bucket <-> old_buckets[i];
@@ -583,4 +584,22 @@ pub mod test {
583584

584585
assert m1 == m2;
585586
}
587+
588+
#[test]
589+
pub fn test_expand() {
590+
let mut m = ~LinearMap();
591+
592+
assert m.len() == 0;
593+
assert m.is_empty();
594+
595+
let mut i = 0u;
596+
let old_resize_at = m.resize_at;
597+
while old_resize_at == m.resize_at {
598+
m.insert(i, i);
599+
i += 1;
600+
}
601+
602+
assert m.len() == i;
603+
assert !m.is_empty();
604+
}
586605
}

0 commit comments

Comments
 (0)