diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2011-12-07 16:56:49 -0800 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2011-12-07 17:05:58 -0800 |
| commit | 0fc4403442504dfd05e317f7d34d8935d4c47e0f (patch) | |
| tree | b6dfa6690fc6eea8025fc48de35edeedec860e93 /src/libstd/map.rs | |
| parent | 1ff8994fce4a7ba719bc0b35dceb6442a66888a0 (diff) | |
| download | rust-0fc4403442504dfd05e317f7d34d8935d4c47e0f.tar.gz rust-0fc4403442504dfd05e317f7d34d8935d4c47e0f.zip | |
use util::rational to work around bug w/ floats on win
Diffstat (limited to 'src/libstd/map.rs')
| -rw-r--r-- | src/libstd/map.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libstd/map.rs b/src/libstd/map.rs index 18cae4d55b7..dd9d939a20e 100644 --- a/src/libstd/map.rs +++ b/src/libstd/map.rs @@ -296,15 +296,15 @@ mod chained { } obj o<copy K, copy V>(tbl: @t<K,V>, - lf: float) { + lf: util::rational) { fn size() -> uint { ret tbl.size; } fn insert(k: K, v: V) -> bool { let nchains = vec::len(tbl.chains); - let load = (tbl.size + 1u as float) / (nchains as float); - if load > lf { + let load = {num:tbl.size + 1u as int, den:nchains as int}; + if !util::rational_leq(load, lf) { rehash(*tbl); } ret insert(*tbl, k, v); @@ -349,7 +349,7 @@ mod chained { mutable chains: chains(initial_capacity), hasher: hasher, eqer: eqer}; - ret o(t, 0.75); + ret o(t, {num:3, den:4}); } } |
