@@ -27,7 +27,6 @@ use std::hashmap::{HashMap, HashSet};
2727use std:: io:: mem:: MemWriter ;
2828use std:: io:: { Writer , Seek , Decorator } ;
2929use std:: str;
30- use std:: util;
3130use std:: vec;
3231
3332use extra:: serialize:: Encodable ;
@@ -1800,6 +1799,11 @@ pub static metadata_encoding_version : &'static [u8] =
18001799
18011800pub fn encode_metadata ( parms : EncodeParams , crate : & Crate ) -> ~[ u8 ] {
18021801 let mut wr = MemWriter :: new ( ) ;
1802+ encode_metadata_inner ( & mut wr, parms, crate ) ;
1803+ wr. inner ( )
1804+ }
1805+
1806+ fn encode_metadata_inner ( wr : & mut MemWriter , parms : EncodeParams , crate : & Crate ) {
18031807 let stats = Stats {
18041808 inline_bytes : Cell :: new ( 0 ) ,
18051809 attr_bytes : Cell :: new ( 0 ) ,
@@ -1841,7 +1845,7 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
18411845 reachable : reachable,
18421846 } ;
18431847
1844- let mut ebml_w = writer:: Encoder ( & mut wr) ;
1848+ let mut ebml_w = writer:: Encoder ( wr) ;
18451849
18461850 encode_hash ( & mut ebml_w, ecx. link_meta . crate_hash ) ;
18471851
@@ -1912,10 +1916,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
19121916 // Pad this, since something (LLVM, presumably) is cutting off the
19131917 // remaining % 4 bytes.
19141918 ebml_w. writer . write ( & [ 0u8 , 0u8 , 0u8 , 0u8 ] ) ;
1915-
1916- // This is a horrible thing to do to the outer MemWriter, but thankfully we
1917- // don't use it again so... it's ok right?
1918- return util:: replace ( ebml_w. writer . inner_mut_ref ( ) , ~[ ] ) ;
19191919}
19201920
19211921// Get the encoded string for a type
0 commit comments