diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-03-03 06:17:06 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-03-07 01:56:59 +0100 |
| commit | 62089c335fbdbe2a04c432239dce9e6e8f9a5e8e (patch) | |
| tree | f87a18a8cd044b24e782e6a5eebb21885d1569fa /src/librustc_trans_utils | |
| parent | e8af0f4c1f121263e55da29854208db0ae1fea54 (diff) | |
Make metadata references Send + Sync
Diffstat (limited to 'src/librustc_trans_utils')
| -rw-r--r-- | src/librustc_trans_utils/lib.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans_utils/trans_crate.rs | 14 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/librustc_trans_utils/lib.rs b/src/librustc_trans_utils/lib.rs index bfecb201983..e87ab3abdf8 100644 --- a/src/librustc_trans_utils/lib.rs +++ b/src/librustc_trans_utils/lib.rs @@ -40,7 +40,7 @@ extern crate rustc_incremental; #[macro_use] extern crate syntax; extern crate syntax_pos; -extern crate rustc_data_structures; +#[macro_use] extern crate rustc_data_structures; pub extern crate rustc as __rustc; diff --git a/src/librustc_trans_utils/trans_crate.rs b/src/librustc_trans_utils/trans_crate.rs index 419371ba3e3..1e896f261c0 100644 --- a/src/librustc_trans_utils/trans_crate.rs +++ b/src/librustc_trans_utils/trans_crate.rs @@ -28,7 +28,7 @@ use std::fs::File; use std::path::Path; use std::sync::mpsc; -use rustc_data_structures::owning_ref::{ErasedBoxRef, OwningRef}; +use rustc_data_structures::owning_ref::OwningRef; use rustc_data_structures::sync::Lrc; use ar::{Archive, Builder, Header}; use flate2::Compression; @@ -47,6 +47,8 @@ use rustc_back::target::Target; use rustc_mir::monomorphize::collector; use link::{build_link_meta, out_filename}; +pub use rustc_data_structures::sync::MetadataRef; + pub trait TransCrate { fn init(&self, _sess: &Session) {} fn print(&self, _req: PrintRequest, _sess: &Session) {} @@ -119,7 +121,7 @@ impl MetadataLoader for DummyMetadataLoader { &self, _target: &Target, _filename: &Path - ) -> Result<ErasedBoxRef<[u8]>, String> { + ) -> Result<MetadataRef, String> { bug!("DummyMetadataLoader::get_rlib_metadata"); } @@ -127,7 +129,7 @@ impl MetadataLoader for DummyMetadataLoader { &self, _target: &Target, _filename: &Path - ) -> Result<ErasedBoxRef<[u8]>, String> { + ) -> Result<MetadataRef, String> { bug!("DummyMetadataLoader::get_dylib_metadata"); } } @@ -135,7 +137,7 @@ impl MetadataLoader for DummyMetadataLoader { pub struct NoLlvmMetadataLoader; impl MetadataLoader for NoLlvmMetadataLoader { - fn get_rlib_metadata(&self, _: &Target, filename: &Path) -> Result<ErasedBoxRef<[u8]>, String> { + fn get_rlib_metadata(&self, _: &Target, filename: &Path) -> Result<MetadataRef, String> { let file = File::open(filename) .map_err(|e| format!("metadata file open err: {:?}", e))?; let mut archive = Archive::new(file); @@ -147,7 +149,7 @@ impl MetadataLoader for NoLlvmMetadataLoader { let mut buf = Vec::new(); io::copy(&mut entry, &mut buf).unwrap(); let buf: OwningRef<Vec<u8>, [u8]> = OwningRef::new(buf).into(); - return Ok(buf.map_owner_box().erase_owner()); + return Ok(rustc_erase_owner!(buf.map_owner_box())); } } @@ -158,7 +160,7 @@ impl MetadataLoader for NoLlvmMetadataLoader { &self, _target: &Target, _filename: &Path, - ) -> Result<ErasedBoxRef<[u8]>, String> { + ) -> Result<MetadataRef, String> { // FIXME: Support reading dylibs from llvm enabled rustc self.get_rlib_metadata(_target, _filename) } |
