@@ -81,8 +81,9 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
8181 break ;
8282 } ,
8383 } ;
84- let bc_extractor = if is_versioned_bytecode_format ( bc_encoded) {
85- |_| {
84+
85+ let bc_decoded = if is_versioned_bytecode_format ( bc_encoded) {
86+ time ( sess. time_passes ( ) , format ! ( "decode {}.{}.bc" , file, i) . as_slice ( ) , ( ) , |_| {
8687 // Read the version
8788 let version = extract_bytecode_format_version ( bc_encoded) ;
8889
@@ -104,26 +105,21 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
104105 sess. fatal ( format ! ( "Unsupported bytecode format version {}" ,
105106 version) . as_slice ( ) )
106107 }
107- }
108+ } )
108109 } else {
110+ time ( sess. time_passes ( ) , format ! ( "decode {}.{}.bc" , file, i) . as_slice ( ) , ( ) , |_| {
109111 // the object must be in the old, pre-versioning format, so simply
110112 // inflate everything and let LLVM decide if it can make sense of it
111- |_| {
112113 match flate:: inflate_bytes ( bc_encoded) {
113114 Some ( bc) => bc,
114115 None => {
115116 sess. fatal ( format ! ( "failed to decompress bc of `{}`" ,
116117 name) . as_slice ( ) )
117118 }
118119 }
119- }
120+ } )
120121 } ;
121122
122- let bc_decoded = time ( sess. time_passes ( ) ,
123- format ! ( "decode {}.{}.bc" , file, i) . as_slice ( ) ,
124- ( ) ,
125- bc_extractor) ;
126-
127123 let ptr = bc_decoded. as_slice ( ) . as_ptr ( ) ;
128124 debug ! ( "linking {}, part {}" , name, i) ;
129125 time ( sess. time_passes ( ) ,
0 commit comments