@@ -164,24 +164,28 @@ impl MachCommand {
164
164
let MachCommand ( ref cmd, cmdsize) = * self ;
165
165
166
166
match cmd {
167
- & LoadCommand :: Segment { ref segname,
168
- vmaddr,
169
- vmsize,
170
- fileoff,
171
- filesize,
172
- maxprot,
173
- initprot,
174
- flags,
175
- ref sections } |
176
- & LoadCommand :: Segment64 { ref segname,
177
- vmaddr,
178
- vmsize,
179
- fileoff,
180
- filesize,
181
- maxprot,
182
- initprot,
183
- flags,
184
- ref sections } => {
167
+ & LoadCommand :: Segment {
168
+ ref segname,
169
+ vmaddr,
170
+ vmsize,
171
+ fileoff,
172
+ filesize,
173
+ maxprot,
174
+ initprot,
175
+ flags,
176
+ ref sections,
177
+ } |
178
+ & LoadCommand :: Segment64 {
179
+ ref segname,
180
+ vmaddr,
181
+ vmsize,
182
+ fileoff,
183
+ filesize,
184
+ maxprot,
185
+ initprot,
186
+ flags,
187
+ ref sections,
188
+ } => {
185
189
let is_64bit = if cmd. cmd ( ) == LC_SEGMENT_64 {
186
190
true
187
191
} else {
@@ -263,16 +267,18 @@ impl MachCommand {
263
267
fn print_dyld_info_command ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
264
268
let MachCommand ( ref cmd, cmdsize) = * self ;
265
269
266
- if let & LoadCommand :: DyldInfo { rebase_off,
267
- rebase_size,
268
- bind_off,
269
- bind_size,
270
- weak_bind_off,
271
- weak_bind_size,
272
- lazy_bind_off,
273
- lazy_bind_size,
274
- export_off,
275
- export_size } = cmd {
270
+ if let & LoadCommand :: DyldInfo {
271
+ rebase_off,
272
+ rebase_size,
273
+ bind_off,
274
+ bind_size,
275
+ weak_bind_off,
276
+ weak_bind_size,
277
+ lazy_bind_off,
278
+ lazy_bind_size,
279
+ export_off,
280
+ export_size,
281
+ } = cmd {
276
282
try!( write ! ( f, " cmd {}\n " , cmd. name( ) ) ) ;
277
283
try!( write ! ( f, " cmdsize {}\n " , cmdsize) ) ;
278
284
try!( write ! ( f, " rebase_off {}\n " , rebase_off) ) ;
@@ -295,7 +301,12 @@ impl MachCommand {
295
301
fn print_symtab_command ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
296
302
let MachCommand ( ref cmd, cmdsize) = * self ;
297
303
298
- if let & LoadCommand :: SymTab { symoff, nsyms, stroff, strsize } = cmd {
304
+ if let & LoadCommand :: SymTab {
305
+ symoff,
306
+ nsyms,
307
+ stroff,
308
+ strsize,
309
+ } = cmd {
299
310
try!( write ! ( f, " cmd {}\n " , cmd. name( ) ) ) ;
300
311
try!( write ! ( f, " cmdsize {}\n " , cmdsize) ) ;
301
312
try!( write ! ( f, " symoff {}\n " , symoff) ) ;
@@ -312,24 +323,26 @@ impl MachCommand {
312
323
fn print_dysymtab_command ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
313
324
let MachCommand ( ref cmd, cmdsize) = * self ;
314
325
315
- if let & LoadCommand :: DySymTab { ilocalsym,
316
- nlocalsym,
317
- iextdefsym,
318
- nextdefsym,
319
- iundefsym,
320
- nundefsym,
321
- tocoff,
322
- ntoc,
323
- modtaboff,
324
- nmodtab,
325
- extrefsymoff,
326
- nextrefsyms,
327
- indirectsymoff,
328
- nindirectsyms,
329
- extreloff,
330
- nextrel,
331
- locreloff,
332
- nlocrel } = cmd {
326
+ if let & LoadCommand :: DySymTab {
327
+ ilocalsym,
328
+ nlocalsym,
329
+ iextdefsym,
330
+ nextdefsym,
331
+ iundefsym,
332
+ nundefsym,
333
+ tocoff,
334
+ ntoc,
335
+ modtaboff,
336
+ nmodtab,
337
+ extrefsymoff,
338
+ nextrefsyms,
339
+ indirectsymoff,
340
+ nindirectsyms,
341
+ extreloff,
342
+ nextrel,
343
+ locreloff,
344
+ nlocrel,
345
+ } = cmd {
333
346
try!( write ! ( f, " cmd {}\n " , cmd. name( ) ) ) ;
334
347
try!( write ! ( f, " cmdsize {}\n " , cmdsize) ) ;
335
348
try!( write ! ( f, " ilocalsym {}\n " , ilocalsym) ) ;
@@ -483,7 +496,10 @@ impl MachCommand {
483
496
fn print_entry_point_command ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
484
497
let MachCommand ( ref cmd, cmdsize) = * self ;
485
498
486
- if let & LoadCommand :: EntryPoint { entryoff, stacksize } = cmd {
499
+ if let & LoadCommand :: EntryPoint {
500
+ entryoff,
501
+ stacksize,
502
+ } = cmd {
487
503
try!( write ! ( f, " cmd {}\n " , cmd. name( ) ) ) ;
488
504
try!( write ! ( f, " cmdsize {}\n " , cmdsize) ) ;
489
505
try!( write ! ( f, " entryoff {}\n " , entryoff) ) ;
@@ -734,9 +750,9 @@ impl OFile {
734
750
debug ! ( "parsed {} load commands" , commands. len( ) ) ;
735
751
736
752
Ok ( OFile :: MachFile {
737
- header : header,
738
- commands : commands,
739
- } )
753
+ header : header,
754
+ commands : commands,
755
+ } )
740
756
}
741
757
742
758
fn parse_fat_file < O : ByteOrder , T : AsRef < [ u8 ] > > ( buf : & mut Cursor < T > ) -> Result < OFile > {
@@ -782,9 +798,9 @@ impl OFile {
782
798
}
783
799
784
800
Ok ( OFile :: FatFile {
785
- magic : magic,
786
- files : files,
787
- } )
801
+ magic : magic,
802
+ files : files,
803
+ } )
788
804
}
789
805
790
806
fn parse_ar_file < O : ByteOrder , T : AsRef < [ u8 ] > > ( buf : & mut Cursor < T > ) -> Result < OFile > {
@@ -802,9 +818,9 @@ impl OFile {
802
818
803
819
for _ in 0 ..( ranlib_len / size_of :: < RanLib > ( ) ) {
804
820
ranlibs. push ( RanLib {
805
- ran_strx : try!( buf. read_u32 :: < O > ( ) ) ,
806
- ran_off : try!( buf. read_u32 :: < O > ( ) ) ,
807
- } )
821
+ ran_strx : try!( buf. read_u32 :: < O > ( ) ) ,
822
+ ran_off : try!( buf. read_u32 :: < O > ( ) ) ,
823
+ } )
808
824
}
809
825
810
826
let toc_strsize = try!( buf. read_u32 :: < O > ( ) ) ;
@@ -904,8 +920,10 @@ pub mod tests {
904
920
( $left: expr, $right: expr) => ( {
905
921
let mut w = Vec :: new( ) ;
906
922
let mut diffs = 0 ;
923
+ let left = $left. replace( "\r \n " , "\n " ) ;
924
+ let right = $right. replace( "\r \n " , "\n " ) ;
907
925
908
- for diff in diff:: lines( $ left, $ right) {
926
+ for diff in diff:: lines( & left, & right) {
909
927
match diff {
910
928
diff:: Result :: Left ( l) => {
911
929
diffs += 1 ;
@@ -923,7 +941,7 @@ pub mod tests {
923
941
info!( "found {} diffs:\n {}" , diffs, String :: from_utf8( w) . unwrap( ) ) ;
924
942
}
925
943
926
- assert_eq!( $ left, $ right) ;
944
+ assert_eq!( & left, & right) ;
927
945
} )
928
946
}
929
947
@@ -1012,8 +1030,8 @@ pub mod tests {
1012
1030
assert_eq ! ( files. len( ) , 2 ) ;
1013
1031
1014
1032
for ( i, arch_dump) in [ HELLO_UNIVERSAL_I386_LC , HELLO_UNIVERSAL_X86_64_LC ]
1015
- . iter ( )
1016
- . enumerate ( ) {
1033
+ . iter ( )
1034
+ . enumerate ( ) {
1017
1035
let mut w = Vec :: < u8 > :: new ( ) ;
1018
1036
1019
1037
write ! ( w, "helloworld.universal:\n " ) . unwrap ( ) ;
0 commit comments