Skip to content

Commit 5d9b65a

Browse files
committed
---
yaml --- r: 147710 b: refs/heads/try2 c: ed819c9 h: refs/heads/master v: v3
1 parent 825df87 commit 5d9b65a

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
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: 1f76a9ba5ef3b9b1f903ef3fd0f932972566720c
8+
refs/heads/try2: ed819c9a81d138ab876c42ad35025ff432845a2c
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/librustc/metadata/creader.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub fn read_crates(sess: Session,
3737
let mut e = Env {
3838
sess: sess,
3939
os: os,
40-
crate_cache: @mut ~[],
40+
crate_cache: @RefCell::new(~[]),
4141
next_crate_num: 1,
4242
intr: intr
4343
};
@@ -48,8 +48,9 @@ pub fn read_crates(sess: Session,
4848
};
4949
visit::walk_crate(&mut v, crate, ());
5050
}
51-
dump_crates(*e.crate_cache);
52-
warn_if_multiple_versions(&mut e, sess.diagnostic(), *e.crate_cache);
51+
let crate_cache = e.crate_cache.borrow();
52+
dump_crates(*crate_cache.get());
53+
warn_if_multiple_versions(&mut e, sess.diagnostic(), *crate_cache.get());
5354
}
5455

5556
struct ReadCrateVisitor<'a> {
@@ -111,7 +112,7 @@ fn warn_if_multiple_versions(e: &mut Env,
111112
struct Env {
112113
sess: Session,
113114
os: loader::Os,
114-
crate_cache: @mut ~[cache_entry],
115+
crate_cache: @RefCell<~[cache_entry]>,
115116
next_crate_num: ast::CrateNum,
116117
intr: @ident_interner
117118
}
@@ -242,7 +243,8 @@ fn visit_item(e: &Env, i: @ast::item) {
242243
}
243244

244245
fn existing_match(e: &Env, name: @str, version: @str, hash: &str) -> Option<ast::CrateNum> {
245-
for c in e.crate_cache.iter() {
246+
let crate_cache = e.crate_cache.borrow();
247+
for c in crate_cache.get().iter() {
246248
let pkgid_version = match c.pkgid.version {
247249
None => @"0.0",
248250
Some(ref ver) => ver.to_managed(),
@@ -285,12 +287,15 @@ fn resolve_crate(e: &mut Env,
285287

286288
// Claim this crate number and cache it
287289
let cnum = e.next_crate_num;
288-
e.crate_cache.push(cache_entry {
289-
cnum: cnum,
290-
span: span,
291-
hash: hash,
292-
pkgid: pkgid,
293-
});
290+
{
291+
let mut crate_cache = e.crate_cache.borrow_mut();
292+
crate_cache.get().push(cache_entry {
293+
cnum: cnum,
294+
span: span,
295+
hash: hash,
296+
pkgid: pkgid,
297+
});
298+
}
294299
e.next_crate_num += 1;
295300

296301
// Now resolve the crates referenced by this crate

0 commit comments

Comments
 (0)