@@ -218,7 +218,7 @@ use crate::rmeta::{rustc_version, MetadataBlob, METADATA_HEADER};
218218
219219use rustc_data_structures:: fx:: { FxHashMap , FxHashSet } ;
220220use rustc_data_structures:: memmap:: Mmap ;
221- use rustc_data_structures:: owning_ref :: OwningRef ;
221+ use rustc_data_structures:: owned_slice :: slice_owned ;
222222use rustc_data_structures:: svh:: Svh ;
223223use rustc_data_structures:: sync:: MetadataRef ;
224224use rustc_errors:: { DiagnosticArgValue , FatalError , IntoDiagnosticArg } ;
@@ -236,6 +236,7 @@ use rustc_target::spec::{Target, TargetTriple};
236236use snap:: read:: FrameDecoder ;
237237use std:: borrow:: Cow ;
238238use std:: io:: { Read , Result as IoResult , Write } ;
239+ use std:: ops:: Deref ;
239240use std:: path:: { Path , PathBuf } ;
240241use std:: { cmp, fmt} ;
241242
@@ -814,15 +815,14 @@ fn get_metadata_section<'p>(
814815 // Assume the decompressed data will be at least the size of the compressed data, so we
815816 // don't have to grow the buffer as much.
816817 let mut inflated = Vec :: with_capacity ( compressed_bytes. len ( ) ) ;
817- match FrameDecoder :: new ( compressed_bytes) . read_to_end ( & mut inflated) {
818- Ok ( _) => rustc_erase_owner ! ( OwningRef :: new( inflated) . map_owner_box( ) ) ,
819- Err ( _) => {
820- return Err ( MetadataError :: LoadFailure ( format ! (
821- "failed to decompress metadata: {}" ,
822- filename. display( )
823- ) ) ) ;
824- }
825- }
818+ FrameDecoder :: new ( compressed_bytes) . read_to_end ( & mut inflated) . map_err ( |_| {
819+ MetadataError :: LoadFailure ( format ! (
820+ "failed to decompress metadata: {}" ,
821+ filename. display( )
822+ ) )
823+ } ) ?;
824+
825+ slice_owned ( inflated, Deref :: deref)
826826 }
827827 CrateFlavor :: Rmeta => {
828828 // mmap the file, because only a small fraction of it is read.
@@ -840,7 +840,7 @@ fn get_metadata_section<'p>(
840840 ) )
841841 } ) ?;
842842
843- rustc_erase_owner ! ( OwningRef :: new ( mmap ) . map_owner_box ( ) )
843+ slice_owned ( mmap , Deref :: deref )
844844 }
845845 } ;
846846 let blob = MetadataBlob :: new ( raw_bytes) ;
0 commit comments