@@ -23,8 +23,8 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
23
23
24
24
let util:: rational load_factor = rec ( num=3 , den=4 ) ;
25
25
tag bucket[ K , V ] { nil; deleted; some ( K , V ) ; }
26
- fn make_buckets[ K , V ] ( uint nbkts) -> vec [ mutable bucket[ K , V ] ] {
27
- ret vec :: init_elt_mut[ bucket[ K , V ] ] ( nil[ K , V ] , nbkts) ;
26
+ fn make_buckets[ K , V ] ( uint nbkts) -> ( bucket[ K , V ] ) [ mutable ] {
27
+ ret ivec :: init_elt_mut[ bucket[ K , V ] ] ( nil[ K , V ] , nbkts) ;
28
28
}
29
29
// Derive two hash functions from the one given by taking the upper
30
30
// half and lower half of the uint bits. Our bucket probing
@@ -52,7 +52,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
52
52
53
53
fn insert_common[ K ,
54
54
V ] ( & hashfn[ K ] hasher, & eqfn[ K ] eqer,
55
- vec [ mutable bucket[ K , V ] ] bkts, uint nbkts, & K key,
55
+ & ( bucket[ K , V ] ) [ mutable ] bkts, uint nbkts, & K key,
56
56
& V val) -> bool {
57
57
let uint i = 0 u;
58
58
let uint h = hasher ( key) ;
@@ -77,7 +77,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
77
77
}
78
78
fn find_common[ K ,
79
79
V ] ( & hashfn[ K ] hasher, & eqfn[ K ] eqer,
80
- vec [ mutable bucket[ K , V ] ] bkts, uint nbkts, & K key) ->
80
+ & ( bucket[ K , V ] ) [ mutable ] bkts, uint nbkts, & K key) ->
81
81
option:: t[ V ] {
82
82
let uint i = 0 u;
83
83
let uint h = hasher ( key) ;
@@ -100,8 +100,8 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
100
100
}
101
101
fn rehash[ K ,
102
102
V ] ( & hashfn[ K ] hasher, & eqfn[ K ] eqer,
103
- vec [ mutable bucket[ K , V ] ] oldbkts, uint noldbkts,
104
- vec [ mutable bucket[ K , V ] ] newbkts, uint nnewbkts) {
103
+ & ( bucket[ K , V ] ) [ mutable ] oldbkts, uint noldbkts,
104
+ & ( bucket[ K , V ] ) [ mutable ] newbkts, uint nnewbkts) {
105
105
for ( bucket[ K , V ] b in oldbkts) {
106
106
alt ( b) {
107
107
case ( some ( ?k_, ?v_) ) {
@@ -117,7 +117,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
117
117
obj hashmap[ K ,
118
118
V ] ( hashfn[ K ] hasher,
119
119
eqfn[ K ] eqer,
120
- mutable vec [ mutable bucket[ K , V ] ] bkts,
120
+ mutable ( bucket[ K , V ] ) [ mutable ] bkts,
121
121
mutable uint nbkts,
122
122
mutable uint nelts,
123
123
util:: rational lf) {
@@ -127,8 +127,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
127
127
rec ( num=nelts + 1 u as int , den=nbkts as int ) ;
128
128
if ( !util:: rational_leq ( load, lf) ) {
129
129
let uint nnewbkts = uint:: next_power_of_two ( nbkts + 1 u) ;
130
- let vec[ mutable bucket[ K , V ] ] newbkts =
131
- make_buckets[ K , V ] ( nnewbkts) ;
130
+ auto newbkts = make_buckets[ K , V ] ( nnewbkts) ;
132
131
rehash[ K , V ] ( hasher, eqer, bkts, nbkts, newbkts, nnewbkts) ;
133
132
bkts = newbkts;
134
133
nbkts = nnewbkts;
@@ -177,7 +176,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
177
176
ret option:: none[ V ] ;
178
177
}
179
178
fn rehash ( ) {
180
- let vec [ mutable bucket [ K , V ] ] newbkts = make_buckets[ K , V ] ( nbkts) ;
179
+ auto newbkts = make_buckets[ K , V ] ( nbkts) ;
181
180
rehash[ K , V ] ( hasher, eqer, bkts, nbkts, newbkts, nbkts) ;
182
181
bkts = newbkts;
183
182
}
@@ -190,7 +189,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
190
189
}
191
190
}
192
191
}
193
- let vec [ mutable bucket [ K , V ] ] bkts = make_buckets[ K , V ] ( initial_capacity) ;
192
+ auto bkts = make_buckets[ K , V ] ( initial_capacity) ;
194
193
ret hashmap[ K , V ] ( hasher, eqer, bkts, initial_capacity, 0 u, load_factor) ;
195
194
}
196
195
0 commit comments