]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_trans/symbol_map.rs
cache symbol names in ty::maps
[rust.git] / src / librustc_trans / symbol_map.rs
index 36c3981e3a6f240c2b78538f8a8e03a4ac8ed4c4..85a8d501753f237cfcb363158eac5ea6df213893 100644 (file)
@@ -34,8 +34,9 @@ pub fn build<'a, I>(scx: &SharedCrateContext<'a, 'tcx>,
         where I: Iterator<Item=TransItem<'tcx>>
     {
         // Check for duplicate symbol names
+        let tcx = scx.tcx();
         let mut symbols: Vec<_> = trans_items.map(|trans_item| {
-            (trans_item, trans_item.compute_symbol_name(scx))
+            (trans_item, trans_item.symbol_name(tcx))
         }).collect();
 
         (&mut symbols[..]).sort_by(|&(_, ref sym1), &(_, ref sym2)|{
@@ -124,7 +125,7 @@ pub fn get_or_compute<'map, 'scx>(&'map self,
         if let Some(sym) = self.get(trans_item) {
             Cow::from(sym)
         } else {
-            Cow::from(trans_item.compute_symbol_name(scx))
+            Cow::from(str::to_owned(&trans_item.symbol_name(scx.tcx())))
         }
     }
 }