@@ -138,11 +138,8 @@ pub trait ArchiveBuilderBuilder {
138138 bundled_lib_file_names : & FxIndexSet < Symbol > ,
139139 ) -> Result < ( ) , ExtractBundledLibsError < ' a > > {
140140 let archive_map = unsafe {
141- Mmap :: map (
142- File :: open ( rlib)
143- . map_err ( |e| ExtractBundledLibsError :: OpenFile { rlib, error : Box :: new ( e) } ) ?,
144- )
145- . map_err ( |e| ExtractBundledLibsError :: MmapFile { rlib, error : Box :: new ( e) } ) ?
141+ Mmap :: map ( rlib)
142+ . map_err ( |e| ExtractBundledLibsError :: MmapFile { rlib, error : Box :: new ( e) } ) ?
146143 } ;
147144 let archive = ArchiveFile :: parse ( & * archive_map)
148145 . map_err ( |e| ExtractBundledLibsError :: ParseArchive { rlib, error : Box :: new ( e) } ) ?;
@@ -363,7 +360,7 @@ pub fn try_extract_macho_fat_archive(
363360 sess : & Session ,
364361 archive_path : & Path ,
365362) -> io:: Result < Option < PathBuf > > {
366- let archive_map = unsafe { Mmap :: map ( File :: open ( & archive_path) ? ) ? } ;
363+ let archive_map = unsafe { Mmap :: map ( & archive_path) ? } ;
367364 let target_arch = match sess. target . arch . as_ref ( ) {
368365 "aarch64" => object:: Architecture :: Aarch64 ,
369366 "x86_64" => object:: Architecture :: X86_64 ,
@@ -400,7 +397,7 @@ impl<'a> ArchiveBuilder for ArArchiveBuilder<'a> {
400397 return Ok ( ( ) ) ;
401398 }
402399
403- let archive_map = unsafe { Mmap :: map ( File :: open ( & archive_path) ? ) ? } ;
400+ let archive_map = unsafe { Mmap :: map ( & archive_path) ? } ;
404401 let archive = ArchiveFile :: parse ( & * archive_map)
405402 . map_err ( |err| io:: Error :: new ( io:: ErrorKind :: InvalidData , err) ) ?;
406403 let archive_index = self . src_archives . len ( ) ;
@@ -463,25 +460,22 @@ impl<'a> ArArchiveBuilder<'a> {
463460 let mut entries = Vec :: new ( ) ;
464461
465462 for ( entry_name, entry) in self . entries {
466- let data =
467- match entry {
468- ArchiveEntry :: FromArchive { archive_index, file_range } => {
469- let src_archive = & self . src_archives [ archive_index] ;
470-
471- let data = & src_archive. 1
472- [ file_range. 0 as usize ..file_range. 0 as usize + file_range. 1 as usize ] ;
473-
474- Box :: new ( data) as Box < dyn AsRef < [ u8 ] > >
475- }
476- ArchiveEntry :: File ( file) => unsafe {
477- Box :: new (
478- Mmap :: map ( File :: open ( file) . map_err ( |err| {
479- io_error_context ( "failed to open object file" , err)
480- } ) ?)
463+ let data = match entry {
464+ ArchiveEntry :: FromArchive { archive_index, file_range } => {
465+ let src_archive = & self . src_archives [ archive_index] ;
466+
467+ let data = & src_archive. 1
468+ [ file_range. 0 as usize ..file_range. 0 as usize + file_range. 1 as usize ] ;
469+
470+ Box :: new ( data) as Box < dyn AsRef < [ u8 ] > >
471+ }
472+ ArchiveEntry :: File ( file) => unsafe {
473+ Box :: new (
474+ Mmap :: map ( file)
481475 . map_err ( |err| io_error_context ( "failed to map object file" , err) ) ?,
482- ) as Box < dyn AsRef < [ u8 ] > >
483- } ,
484- } ;
476+ ) as Box < dyn AsRef < [ u8 ] > >
477+ } ,
478+ } ;
485479
486480 entries. push ( NewArchiveMember {
487481 buf : data,
0 commit comments