@@ -27,7 +27,6 @@ use std::hashmap::{HashMap, HashSet};
27
27
use std:: io:: mem:: MemWriter ;
28
28
use std:: io:: { Writer , Seek , Decorator } ;
29
29
use std:: str;
30
- use std:: util;
31
30
use std:: vec;
32
31
33
32
use extra:: serialize:: Encodable ;
@@ -1800,6 +1799,11 @@ pub static metadata_encoding_version : &'static [u8] =
1800
1799
1801
1800
pub fn encode_metadata ( parms : EncodeParams , crate : & Crate ) -> ~[ u8 ] {
1802
1801
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 ) {
1803
1807
let stats = Stats {
1804
1808
inline_bytes : Cell :: new ( 0 ) ,
1805
1809
attr_bytes : Cell :: new ( 0 ) ,
@@ -1841,7 +1845,7 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
1841
1845
reachable : reachable,
1842
1846
} ;
1843
1847
1844
- let mut ebml_w = writer:: Encoder ( & mut wr) ;
1848
+ let mut ebml_w = writer:: Encoder ( wr) ;
1845
1849
1846
1850
encode_hash ( & mut ebml_w, ecx. link_meta . crate_hash ) ;
1847
1851
@@ -1912,10 +1916,6 @@ pub fn encode_metadata(parms: EncodeParams, crate: &Crate) -> ~[u8] {
1912
1916
// Pad this, since something (LLVM, presumably) is cutting off the
1913
1917
// remaining % 4 bytes.
1914
1918
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 ( ) , ~[ ] ) ;
1919
1919
}
1920
1920
1921
1921
// Get the encoded string for a type
0 commit comments