@@ -29,7 +29,7 @@ use rustc_log::stdout_isatty;
2929use rustc_metadata:: locator;
3030use rustc_save_analysis as save;
3131use rustc_save_analysis:: DumpHandler ;
32- use rustc_serialize:: json:: { self , ToJson } ;
32+ use rustc_serialize:: json:: ToJson ;
3333use rustc_session:: config:: { nightly_options, CG_OPTIONS , DB_OPTIONS } ;
3434use rustc_session:: config:: { ErrorOutputType , Input , OutputType , PrintRequest , TrimmedDefPaths } ;
3535use rustc_session:: cstore:: MetadataLoader ;
@@ -595,10 +595,12 @@ impl RustcDefaultCalls {
595595 // FIXME: #![crate_type] and #![crate_name] support not implemented yet
596596 sess. init_crate_types ( collect_crate_types ( sess, & [ ] ) ) ;
597597 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| {
599599 sess. fatal ( & format ! ( "failed to read rlink file: {}" , err) ) ;
600600 } ) ;
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) ;
602604 let result = compiler. codegen_backend ( ) . link ( sess, codegen_results, & outputs) ;
603605 abort_on_err ( result, sess) ;
604606 } else {
0 commit comments