Skip to content

Commit f55e5b1

Browse files
committed
---
yaml --- r: 1941 b: refs/heads/master c: 6a60cb1 h: refs/heads/master i: 1939: 1eec382 v: v3
1 parent d992abc commit f55e5b1

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: dec92d392e59075ceee750b4b816a84c873a5212
2+
refs/heads/master: 6a60cb1e0cf4bdc37e78c0560e6fed0743a9c271

trunk/src/comp/util/common.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,15 @@ fn def_eq(&ast.def_id a, &ast.def_id b) -> bool {
5050
ret a._0 == b._0 && a._1 == b._1;
5151
}
5252

53-
fn new_def_hash[V]() -> std.map.hashmap[ast.def_id,V] {
54-
55-
fn hash(&ast.def_id d) -> uint {
56-
let uint u = d._0 as uint;
57-
u <<= 16u;
58-
u |= d._1 as uint;
59-
ret u;
60-
}
53+
fn hash_def(&ast.def_id d) -> uint {
54+
auto h = 5381u;
55+
h = ((h << 5u) + h) ^ (d._0 as uint);
56+
h = ((h << 5u) + h) ^ (d._1 as uint);
57+
ret h;
58+
}
6159

62-
let std.map.hashfn[ast.def_id] hasher = hash;
60+
fn new_def_hash[V]() -> std.map.hashmap[ast.def_id,V] {
61+
let std.map.hashfn[ast.def_id] hasher = hash_def;
6362
let std.map.eqfn[ast.def_id] eqer = def_eq;
6463
ret std.map.mk_hashmap[ast.def_id,V](hasher, eqer);
6564
}

0 commit comments

Comments
 (0)