@@ -29,7 +29,7 @@ use rustc_log::stdout_isatty;
29
29
use rustc_metadata:: locator;
30
30
use rustc_save_analysis as save;
31
31
use rustc_save_analysis:: DumpHandler ;
32
- use rustc_serialize:: json:: { self , ToJson } ;
32
+ use rustc_serialize:: json:: ToJson ;
33
33
use rustc_session:: config:: { nightly_options, CG_OPTIONS , DB_OPTIONS } ;
34
34
use rustc_session:: config:: { ErrorOutputType , Input , OutputType , PrintRequest , TrimmedDefPaths } ;
35
35
use rustc_session:: cstore:: MetadataLoader ;
@@ -595,10 +595,12 @@ impl RustcDefaultCalls {
595
595
// FIXME: #![crate_type] and #![crate_name] support not implemented yet
596
596
sess. init_crate_types ( collect_crate_types ( sess, & [ ] ) ) ;
597
597
let outputs = compiler. build_output_filenames ( sess, & [ ] ) ;
598
- let rlink_data = fs:: read_to_string ( file) . unwrap_or_else ( |err| {
598
+ let rlink_data = fs:: read ( file) . unwrap_or_else ( |err| {
599
599
sess. fatal ( & format ! ( "failed to read rlink file: {}" , err) ) ;
600
600
} ) ;
601
- let codegen_results: CodegenResults = json:: decode ( & rlink_data) ;
601
+ let mut decoder = rustc_serialize:: opaque:: Decoder :: new ( & rlink_data, 0 ) ;
602
+ let codegen_results: CodegenResults =
603
+ rustc_serialize:: Decodable :: decode ( & mut decoder) ;
602
604
let result = compiler. codegen_backend ( ) . link ( sess, codegen_results, & outputs) ;
603
605
abort_on_err ( result, sess) ;
604
606
} else {
0 commit comments