Skip to content

Commit 6a6b305

Browse files
committed
---
yaml --- r: 96979 b: refs/heads/dist-snap c: 25337a7 h: refs/heads/master i: 96977: c89a6d3 96975: f39da74 v: v3
1 parent fc86fd4 commit 6a6b305

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: a1747a609122f6bc82f396897752d182fd583d4a
9+
refs/heads/dist-snap: 25337a7f9fd824ca26faee47a4bc4aaa6e542586
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/librustc/back/link.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -521,14 +521,18 @@ pub fn symbol_hash(tcx: ty::ctxt,
521521
}
522522

523523
pub fn get_symbol_hash(ccx: &mut CrateContext, t: ty::t) -> @str {
524-
match ccx.type_hashcodes.find(&t) {
525-
Some(&h) => h,
526-
None => {
527-
let hash = symbol_hash(ccx.tcx, &mut ccx.symbol_hasher, t, &ccx.link_meta);
528-
ccx.type_hashcodes.insert(t, hash);
529-
hash
530-
}
524+
{
525+
let type_hashcodes = ccx.type_hashcodes.borrow();
526+
match type_hashcodes.get().find(&t) {
527+
Some(&h) => return h,
528+
None => {}
529+
}
531530
}
531+
532+
let mut type_hashcodes = ccx.type_hashcodes.borrow_mut();
533+
let hash = symbol_hash(ccx.tcx, &mut ccx.symbol_hasher, t, &ccx.link_meta);
534+
type_hashcodes.get().insert(t, hash);
535+
hash
532536
}
533537

534538

branches/dist-snap/src/librustc/middle/trans/context.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ pub struct CrateContext {
9696
llsizingtypes: RefCell<HashMap<ty::t, Type>>,
9797
adt_reprs: RefCell<HashMap<ty::t, @adt::Repr>>,
9898
symbol_hasher: Sha256,
99-
type_hashcodes: HashMap<ty::t, @str>,
99+
type_hashcodes: RefCell<HashMap<ty::t, @str>>,
100100
type_short_names: HashMap<ty::t, ~str>,
101101
all_llvm_symbols: HashSet<@str>,
102102
tcx: ty::ctxt,
@@ -207,7 +207,7 @@ impl CrateContext {
207207
llsizingtypes: RefCell::new(HashMap::new()),
208208
adt_reprs: RefCell::new(HashMap::new()),
209209
symbol_hasher: symbol_hasher,
210-
type_hashcodes: HashMap::new(),
210+
type_hashcodes: RefCell::new(HashMap::new()),
211211
type_short_names: HashMap::new(),
212212
all_llvm_symbols: HashSet::new(),
213213
tcx: tcx,

0 commit comments

Comments
 (0)