librustc: De-@mut CStore::used_libraries
This commit is contained in:
parent
3528f74335
commit
af1184030b
3 changed files with 17 additions and 9 deletions
|
|
@ -853,7 +853,9 @@ fn link_rlib(sess: Session,
|
|||
out_filename: &Path) -> Archive {
|
||||
let mut a = Archive::create(sess, out_filename, obj_filename);
|
||||
|
||||
for &(ref l, kind) in sess.cstore.get_used_libraries().iter() {
|
||||
let used_libraries = sess.cstore.get_used_libraries();
|
||||
let used_libraries = used_libraries.borrow();
|
||||
for &(ref l, kind) in used_libraries.get().iter() {
|
||||
match kind {
|
||||
cstore::NativeStatic => {
|
||||
a.add_native_library(l.as_slice());
|
||||
|
|
@ -1116,7 +1118,9 @@ fn add_local_native_libraries(args: &mut ~[~str], sess: Session) {
|
|||
args.push("-L" + path.as_str().unwrap().to_owned());
|
||||
}
|
||||
|
||||
for &(ref l, kind) in sess.cstore.get_used_libraries().iter() {
|
||||
let used_libraries = sess.cstore.get_used_libraries();
|
||||
let used_libraries = used_libraries.borrow();
|
||||
for &(ref l, kind) in used_libraries.get().iter() {
|
||||
match kind {
|
||||
cstore::NativeUnknown | cstore::NativeStatic => {
|
||||
args.push("-l" + *l);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ pub struct CStore {
|
|||
priv metas: RefCell<HashMap<ast::CrateNum, @crate_metadata>>,
|
||||
priv extern_mod_crate_map: RefCell<extern_mod_crate_map>,
|
||||
priv used_crate_sources: RefCell<~[CrateSource]>,
|
||||
priv used_libraries: ~[(~str, NativeLibaryKind)],
|
||||
priv used_libraries: RefCell<~[(~str, NativeLibaryKind)]>,
|
||||
priv used_link_args: ~[~str],
|
||||
intr: @ident_interner
|
||||
}
|
||||
|
|
@ -78,7 +78,7 @@ impl CStore {
|
|||
metas: RefCell::new(HashMap::new()),
|
||||
extern_mod_crate_map: RefCell::new(HashMap::new()),
|
||||
used_crate_sources: RefCell::new(~[]),
|
||||
used_libraries: ~[],
|
||||
used_libraries: RefCell::new(~[]),
|
||||
used_link_args: ~[],
|
||||
intr: intr
|
||||
}
|
||||
|
|
@ -137,15 +137,17 @@ impl CStore {
|
|||
|
||||
pub fn add_used_library(&mut self, lib: ~str, kind: NativeLibaryKind) -> bool {
|
||||
assert!(!lib.is_empty());
|
||||
if self.used_libraries.iter().any(|&(ref x, _)| x == &lib) {
|
||||
let mut used_libraries = self.used_libraries.borrow_mut();
|
||||
if used_libraries.get().iter().any(|&(ref x, _)| x == &lib) {
|
||||
return false;
|
||||
}
|
||||
self.used_libraries.push((lib, kind));
|
||||
used_libraries.get().push((lib, kind));
|
||||
true
|
||||
}
|
||||
|
||||
pub fn get_used_libraries<'a>(&'a self) -> &'a [(~str, NativeLibaryKind)] {
|
||||
self.used_libraries.as_slice()
|
||||
pub fn get_used_libraries<'a>(&'a self)
|
||||
-> &'a RefCell<~[(~str, NativeLibaryKind)]> {
|
||||
&self.used_libraries
|
||||
}
|
||||
|
||||
pub fn add_used_link_args(&mut self, args: &str) {
|
||||
|
|
|
|||
|
|
@ -1611,7 +1611,9 @@ fn encode_lang_items(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) {
|
|||
fn encode_native_libraries(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) {
|
||||
ebml_w.start_tag(tag_native_libraries);
|
||||
|
||||
for &(ref lib, kind) in ecx.cstore.get_used_libraries().iter() {
|
||||
let used_libraries = ecx.tcx.sess.cstore.get_used_libraries();
|
||||
let used_libraries = used_libraries.borrow();
|
||||
for &(ref lib, kind) in used_libraries.get().iter() {
|
||||
match kind {
|
||||
cstore::NativeStatic => {} // these libraries are not propagated
|
||||
cstore::NativeFramework | cstore::NativeUnknown => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue