Skip to content

Commit 2a0eb85

Browse files
committed
---
yaml --- r: 147598 b: refs/heads/try2 c: c909c34 h: refs/heads/master v: v3
1 parent 77fde79 commit 2a0eb85

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: eb9eade1dfe98301b68b8970a642034e6aa8bbe3
8+
refs/heads/try2: c909c34b5de27fbd0a90b04e9d9c03130c45452b
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/librustc/middle/astencode.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,8 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext,
946946
}
947947

948948
{
949-
let r = tcx.freevars.find(&id);
949+
let freevars = tcx.freevars.borrow();
950+
let r = freevars.get().find(&id);
950951
for &fv in r.iter() {
951952
ebml_w.tag(c::tag_table_freevars, |ebml_w| {
952953
ebml_w.id(id);
@@ -1256,7 +1257,8 @@ fn decode_side_tables(xcx: @ExtendedDecodeContext,
12561257
let fv_info = @val_dsr.read_to_vec(|val_dsr| {
12571258
@val_dsr.read_freevar_entry(xcx)
12581259
});
1259-
dcx.tcx.freevars.insert(id, fv_info);
1260+
let mut freevars = dcx.tcx.freevars.borrow_mut();
1261+
freevars.get().insert(id, fv_info);
12601262
}
12611263
c::tag_table_tcache => {
12621264
let tpbt = val_dsr.read_ty_param_bounds_and_ty(xcx);

branches/try2/src/librustc/middle/freevars.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub struct freevar_entry {
3030
span: Span //< First span where it is accessed (there can be multiple)
3131
}
3232
pub type freevar_info = @~[@freevar_entry];
33-
pub type freevar_map = @mut HashMap<ast::NodeId, freevar_info>;
33+
pub type freevar_map = HashMap<ast::NodeId, freevar_info>;
3434

3535
struct CollectFreevarsVisitor {
3636
seen: HashMap<ast::NodeId, ()>,
@@ -128,21 +128,24 @@ impl Visitor<()> for AnnotateFreevarsVisitor {
128128
// one pass. This could be improved upon if it turns out to matter.
129129
pub fn annotate_freevars(def_map: resolve::DefMap, crate: &ast::Crate) ->
130130
freevar_map {
131-
let freevars = @mut HashMap::new();
132-
133131
let mut visitor = AnnotateFreevarsVisitor {
134132
def_map: def_map,
135-
freevars: freevars,
133+
freevars: HashMap::new(),
136134
};
137135
visit::walk_crate(&mut visitor, crate, ());
138136

139-
return freevars;
137+
let AnnotateFreevarsVisitor {
138+
freevars,
139+
..
140+
} = visitor;
141+
freevars
140142
}
141143

142144
pub fn get_freevars(tcx: ty::ctxt, fid: ast::NodeId) -> freevar_info {
143-
match tcx.freevars.find(&fid) {
144-
None => fail!("get_freevars: {} has no freevars", fid),
145-
Some(&d) => return d
145+
let freevars = tcx.freevars.borrow();
146+
match freevars.get().find(&fid) {
147+
None => fail!("get_freevars: {} has no freevars", fid),
148+
Some(&d) => return d
146149
}
147150
}
148151

branches/try2/src/librustc/middle/ty.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ struct ctxt_ {
303303
/// also to expr/stmt/local/arg/etc
304304
items: ast_map::map,
305305
intrinsic_defs: RefCell<HashMap<ast::DefId, t>>,
306-
freevars: freevars::freevar_map,
306+
freevars: RefCell<freevars::freevar_map>,
307307
tcache: type_cache,
308308
rcache: creader_cache,
309309
short_names_cache: RefCell<HashMap<t, @str>>,
@@ -981,7 +981,7 @@ pub fn mk_ctxt(s: session::Session,
981981
trait_defs: RefCell::new(HashMap::new()),
982982
items: amap,
983983
intrinsic_defs: RefCell::new(HashMap::new()),
984-
freevars: freevars,
984+
freevars: RefCell::new(freevars),
985985
tcache: RefCell::new(HashMap::new()),
986986
rcache: RefCell::new(HashMap::new()),
987987
short_names_cache: RefCell::new(HashMap::new()),

0 commit comments

Comments
 (0)