diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-04-13 18:08:36 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-04-13 18:37:47 -0400 |
| commit | f2487b81523a4f39a5ad27a9d28b198e4cc4dfda (patch) | |
| tree | 98c272a23f7a2554bcf5ab9c4bdb4b909bfcf40f | |
| parent | 8e26983c86c6e6a51c85e1bd5c4621f3b43afe99 (diff) | |
| download | rust-f2487b81523a4f39a5ad27a9d28b198e4cc4dfda.tar.gz rust-f2487b81523a4f39a5ad27a9d28b198e4cc4dfda.zip | |
refactor `metadata_symbol_name`
| -rw-r--r-- | src/librustc_trans/back/symbol_export.rs | 9 | ||||
| -rw-r--r-- | src/librustc_trans/base.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans/context.rs | 8 |
3 files changed, 10 insertions, 9 deletions
diff --git a/src/librustc_trans/back/symbol_export.rs b/src/librustc_trans/back/symbol_export.rs index 04617edf4a7..5d6717272fd 100644 --- a/src/librustc_trans/back/symbol_export.rs +++ b/src/librustc_trans/back/symbol_export.rs @@ -15,6 +15,7 @@ use back::symbol_names::symbol_name; use util::nodemap::FxHashMap; use rustc::hir::def_id::{DefId, CrateNum, LOCAL_CRATE}; use rustc::session::config; +use rustc::ty::TyCtxt; use syntax::attr; use trans_item::TransItem; @@ -72,7 +73,7 @@ impl ExportedSymbols { } if scx.sess().crate_types.borrow().contains(&config::CrateTypeDylib) { - local_crate.push((scx.metadata_symbol_name(), + local_crate.push((metadata_symbol_name(scx.tcx()), SymbolExportLevel::Rust)); } @@ -173,6 +174,12 @@ impl ExportedSymbols { } } +pub fn metadata_symbol_name(tcx: TyCtxt) -> String { + format!("rust_metadata_{}_{}", + tcx.crate_name(LOCAL_CRATE), + tcx.crate_disambiguator(LOCAL_CRATE)) +} + pub fn crate_export_threshold(crate_type: config::CrateType) -> SymbolExportLevel { match crate_type { diff --git a/src/librustc_trans/base.rs b/src/librustc_trans/base.rs index 3fd966eb73e..b364814d07e 100644 --- a/src/librustc_trans/base.rs +++ b/src/librustc_trans/base.rs @@ -776,7 +776,7 @@ fn write_metadata(cx: &SharedCrateContext, let llmeta = C_bytes_in_context(metadata_llcx, &compressed); let llconst = C_struct_in_context(metadata_llcx, &[llmeta], false); - let name = cx.metadata_symbol_name(); + let name = symbol_export::metadata_symbol_name(cx.tcx()); let buf = CString::new(name).unwrap(); let llglobal = unsafe { llvm::LLVMAddGlobal(metadata_llmod, val_ty(llconst).to_ref(), buf.as_ptr()) diff --git a/src/librustc_trans/context.rs b/src/librustc_trans/context.rs index 7e49dee498d..c3770470bfd 100644 --- a/src/librustc_trans/context.rs +++ b/src/librustc_trans/context.rs @@ -12,7 +12,7 @@ use llvm; use llvm::{ContextRef, ModuleRef, ValueRef}; use rustc::dep_graph::{DepGraph, DepGraphSafe, DepNode, DepTrackingMap, DepTrackingMapConfig}; use rustc::hir; -use rustc::hir::def_id::{DefId, LOCAL_CRATE}; +use rustc::hir::def_id::DefId; use rustc::traits; use debuginfo; use callee; @@ -430,12 +430,6 @@ impl<'b, 'tcx> SharedCrateContext<'b, 'tcx> { pub fn translation_items(&self) -> &RefCell<FxHashSet<TransItem<'tcx>>> { &self.translation_items } - - pub fn metadata_symbol_name(&self) -> String { - format!("rust_metadata_{}_{}", - self.tcx().crate_name(LOCAL_CRATE), - self.tcx().crate_disambiguator(LOCAL_CRATE)) - } } impl<'tcx> LocalCrateContext<'tcx> { |
