@@ -11,7 +11,7 @@ use crate::symbolize::ResolveWhat;
11
11
use crate :: types:: BytesOrWideString ;
12
12
use crate :: SymbolName ;
13
13
use addr2line:: gimli;
14
- use addr2line:: object:: { self , Object } ;
14
+ use addr2line:: object:: { self , Object , Uuid } ;
15
15
use core:: cell:: RefCell ;
16
16
use core:: convert:: TryFrom ;
17
17
use core:: mem;
@@ -71,7 +71,7 @@ impl Mapping {
71
71
// header of the file we're reading, specified at `path`.
72
72
let map = mmap ( path) ?;
73
73
let object = object:: MachOFile :: parse ( & map) . ok ( ) ?;
74
- let uuid = get_uuid ( & object) ?;
74
+ let uuid = object. mach_uuid ( ) ?;
75
75
76
76
// Next we need to look for a `*.dSYM` file. For now we just probe the
77
77
// containing directory and look around for something that matches
@@ -100,34 +100,20 @@ impl Mapping {
100
100
// symbolication purposes.
101
101
return Some ( mk ! ( Mapping { map, object } ) ) ;
102
102
103
- fn load_dsym ( dir : & Path , uuid : & [ u8 ] ) -> Option < Mapping > {
103
+ fn load_dsym ( dir : & Path , uuid : & Uuid ) -> Option < Mapping > {
104
104
for entry in dir. read_dir ( ) . ok ( ) ? {
105
105
let entry = entry. ok ( ) ?;
106
106
let map = mmap ( & entry. path ( ) ) ?;
107
107
let object = object:: MachOFile :: parse ( & map) . ok ( ) ?;
108
- let entry_uuid = get_uuid ( & object) ?;
109
- if & entry_uuid[ .. ] != uuid {
108
+ let entry_uuid = object. mach_uuid ( ) ?;
109
+ if entry_uuid != * uuid {
110
110
continue ;
111
111
}
112
112
return Some ( mk ! ( Mapping { map, object } ) ) ;
113
113
}
114
114
115
115
None
116
116
}
117
-
118
- fn get_uuid ( object : & object:: MachOFile ) -> Option < [ u8 ; 16 ] > {
119
- use goblin:: mach:: load_command:: CommandVariant ;
120
-
121
- object
122
- . macho ( )
123
- . load_commands
124
- . iter ( )
125
- . filter_map ( |cmd| match cmd. command {
126
- CommandVariant :: Uuid ( u) => Some ( u. uuid ) ,
127
- _ => None ,
128
- } )
129
- . next ( )
130
- }
131
117
}
132
118
133
119
// Ensure the 'static lifetimes don't leak.
0 commit comments