Skip to content

Commit 978b6bf

Browse files
committed
librustc: De-@mut CStore::extern_mod_crate_map
1 parent df373e6 commit 978b6bf

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/librustc/metadata/cstore.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub struct CrateSource {
6262

6363
pub struct CStore {
6464
priv metas: RefCell<HashMap<ast::CrateNum, @crate_metadata>>,
65-
priv extern_mod_crate_map: extern_mod_crate_map,
65+
priv extern_mod_crate_map: RefCell<extern_mod_crate_map>,
6666
priv used_crate_sources: ~[CrateSource],
6767
priv used_libraries: ~[(~str, NativeLibaryKind)],
6868
priv used_link_args: ~[~str],
@@ -76,7 +76,7 @@ impl CStore {
7676
pub fn new(intr: @ident_interner) -> CStore {
7777
CStore {
7878
metas: RefCell::new(HashMap::new()),
79-
extern_mod_crate_map: HashMap::new(),
79+
extern_mod_crate_map: RefCell::new(HashMap::new()),
8080
used_crate_sources: ~[],
8181
used_libraries: ~[],
8282
used_link_args: ~[],
@@ -162,20 +162,23 @@ impl CStore {
162162
pub fn add_extern_mod_stmt_cnum(&mut self,
163163
emod_id: ast::NodeId,
164164
cnum: ast::CrateNum) {
165-
self.extern_mod_crate_map.insert(emod_id, cnum);
165+
let mut extern_mod_crate_map = self.extern_mod_crate_map.borrow_mut();
166+
extern_mod_crate_map.get().insert(emod_id, cnum);
166167
}
167168

168169
pub fn find_extern_mod_stmt_cnum(&self, emod_id: ast::NodeId)
169170
-> Option<ast::CrateNum> {
170-
self.extern_mod_crate_map.find(&emod_id).map(|x| *x)
171+
let extern_mod_crate_map = self.extern_mod_crate_map.borrow();
172+
extern_mod_crate_map.get().find(&emod_id).map(|x| *x)
171173
}
172174

173175
// returns hashes of crates directly used by this crate. Hashes are sorted by
174176
// (crate name, crate version, crate hash) in lexicographic order (not semver)
175177
pub fn get_dep_hashes(&self) -> ~[@str] {
176178
let mut result = ~[];
177179

178-
for (_, &cnum) in self.extern_mod_crate_map.iter() {
180+
let extern_mod_crate_map = self.extern_mod_crate_map.borrow();
181+
for (_, &cnum) in extern_mod_crate_map.get().iter() {
179182
let cdata = self.get_crate_data(cnum);
180183
let hash = decoder::get_crate_hash(cdata.data());
181184
let vers = decoder::get_crate_vers(cdata.data());

0 commit comments

Comments
 (0)