Skip to content

Commit 810177c

Browse files
committed
librustc: De-@mut IrMaps::lnks
1 parent bef2353 commit 810177c

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/librustc/middle/liveness.rs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ struct IrMaps {
251251
variable_map: RefCell<HashMap<NodeId, Variable>>,
252252
capture_info_map: RefCell<HashMap<NodeId, @~[CaptureInfo]>>,
253253
var_kinds: RefCell<~[VarKind]>,
254-
lnks: ~[LiveNodeKind],
254+
lnks: RefCell<~[LiveNodeKind]>,
255255
}
256256

257257
fn IrMaps(tcx: ty::ctxt,
@@ -268,15 +268,16 @@ fn IrMaps(tcx: ty::ctxt,
268268
variable_map: RefCell::new(HashMap::new()),
269269
capture_info_map: RefCell::new(HashMap::new()),
270270
var_kinds: RefCell::new(~[]),
271-
lnks: ~[],
271+
lnks: RefCell::new(~[]),
272272
}
273273
}
274274

275275
impl IrMaps {
276276
pub fn add_live_node(&mut self, lnk: LiveNodeKind) -> LiveNode {
277277
let num_live_nodes = self.num_live_nodes.get();
278278
let ln = LiveNode(num_live_nodes);
279-
self.lnks.push(lnk);
279+
let mut lnks = self.lnks.borrow_mut();
280+
lnks.get().push(lnk);
280281
self.num_live_nodes.set(num_live_nodes + 1);
281282

282283
debug!("{} is of kind {}", ln.to_str(),
@@ -353,7 +354,8 @@ impl IrMaps {
353354
}
354355

355356
pub fn lnk(&mut self, ln: LiveNode) -> LiveNodeKind {
356-
self.lnks[*ln]
357+
let lnks = self.lnks.borrow();
358+
lnks.get()[*ln]
357359
}
358360
}
359361

@@ -776,10 +778,16 @@ impl Liveness {
776778
pub fn ln_str(&self, ln: LiveNode) -> ~str {
777779
str::from_utf8_owned(io::mem::with_mem_writer(|wr| {
778780
let wr = wr as &mut io::Writer;
779-
write!(wr, "[ln({}) of kind {:?} reads", *ln, self.ir.lnks[*ln]);
780-
self.write_vars(wr, ln, |idx| self.users[idx].reader );
781+
{
782+
let lnks = self.ir.lnks.borrow();
783+
write!(wr,
784+
"[ln({}) of kind {:?} reads",
785+
*ln,
786+
lnks.get()[*ln]);
787+
}
788+
self.write_vars(wr, ln, |idx| self.users[idx].reader);
781789
write!(wr, " writes");
782-
self.write_vars(wr, ln, |idx| self.users[idx].writer );
790+
self.write_vars(wr, ln, |idx| self.users[idx].writer);
783791
write!(wr, " precedes {}]", self.successors[*ln].to_str());
784792
}))
785793
}

0 commit comments

Comments
 (0)