@@ -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 ;
@@ -1797,6 +1796,11 @@ pub static metadata_encoding_version : &'static [u8] =
17971796
17981797pub fn encode_metadata ( parms : EncodeParams , crate : & Crate ) -> ~[ u8 ] {
17991798 let mut wr = MemWriter :: new ( ) ;
1799+ encode_metadata_inner ( & mut wr, parms, crate ) ;
1800+ wr. inner ( )
1801+ }
1802+
1803+ fn encode_metadata_inner ( wr : & mut MemWriter , parms : EncodeParams , crate : & Crate ) {
18001804 let stats = Stats {
18011805 inline_bytes : Cell :: new ( 0 ) ,
18021806 attr_bytes : Cell :: new ( 0 ) ,
@@ -1838,7 +1842,7 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
18381842 reachable : reachable,
18391843 } ;
18401844
1841- let mut ebml_w = writer:: Encoder ( & mut wr) ;
1845+ let mut ebml_w = writer:: Encoder ( wr) ;
18421846
18431847 encode_hash ( & mut ebml_w, ecx. link_meta . crate_hash ) ;
18441848
@@ -1909,10 +1913,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
19091913 // Pad this, since something (LLVM, presumably) is cutting off the
19101914 // remaining % 4 bytes.
19111915 ebml_w. writer . write ( & [ 0u8 , 0u8 , 0u8 , 0u8 ] ) ;
1912-
1913- // This is a horrible thing to do to the outer MemWriter, but thankfully we
1914- // don't use it again so... it's ok right?
1915- return util:: replace ( ebml_w. writer . inner_mut_ref ( ) , ~[ ] ) ;
19161916}
19171917
19181918// Get the encoded string for a type
0 commit comments