@@ -81,8 +81,9 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
81
81
break ;
82
82
} ,
83
83
} ;
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 ( ) , ( ) , |_| {
86
87
// Read the version
87
88
let version = extract_bytecode_format_version ( bc_encoded) ;
88
89
@@ -104,26 +105,21 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
104
105
sess. fatal ( format ! ( "Unsupported bytecode format version {}" ,
105
106
version) . as_slice ( ) )
106
107
}
107
- }
108
+ } )
108
109
} else {
110
+ time ( sess. time_passes ( ) , format ! ( "decode {}.{}.bc" , file, i) . as_slice ( ) , ( ) , |_| {
109
111
// the object must be in the old, pre-versioning format, so simply
110
112
// inflate everything and let LLVM decide if it can make sense of it
111
- |_| {
112
113
match flate:: inflate_bytes ( bc_encoded) {
113
114
Some ( bc) => bc,
114
115
None => {
115
116
sess. fatal ( format ! ( "failed to decompress bc of `{}`" ,
116
117
name) . as_slice ( ) )
117
118
}
118
119
}
119
- }
120
+ } )
120
121
} ;
121
122
122
- let bc_decoded = time ( sess. time_passes ( ) ,
123
- format ! ( "decode {}.{}.bc" , file, i) . as_slice ( ) ,
124
- ( ) ,
125
- bc_extractor) ;
126
-
127
123
let ptr = bc_decoded. as_slice ( ) . as_ptr ( ) ;
128
124
debug ! ( "linking {}, part {}" , name, i) ;
129
125
time ( sess. time_passes ( ) ,
0 commit comments