@@ -42,7 +42,6 @@ struct MemoryMappedSegmentData {
4242 const char *current_load_cmd_addr;
4343 u32 lc_type;
4444 uptr base_virt_addr;
45- uptr addr_mask;
4645};
4746
4847template <typename Section>
@@ -51,7 +50,7 @@ static void NextSectionLoad(LoadedModule *module, MemoryMappedSegmentData *data,
5150 const Section *sc = (const Section *)data->current_load_cmd_addr ;
5251 data->current_load_cmd_addr += sizeof (Section);
5352
54- uptr sec_start = ( sc->addr & data-> addr_mask ) + data->base_virt_addr ;
53+ uptr sec_start = sc->addr + data->base_virt_addr ;
5554 uptr sec_end = sec_start + sc->size ;
5655 module ->addAddressRange (sec_start, sec_end, /* executable=*/ false , isWritable,
5756 sc->sectname );
@@ -263,17 +262,15 @@ static bool NextSegmentLoad(MemoryMappedSegment *segment,
263262 return false ;
264263 }
265264
266- uptr base_virt_addr, addr_mask ;
265+ uptr base_virt_addr;
267266 if (layout_data->current_image == kDyldImageIdx ) {
268267 base_virt_addr = (uptr)_dyld_get_image_slide (get_dyld_hdr ());
269- addr_mask = ~0 ;
270268 } else {
271269 base_virt_addr =
272270 (uptr)_dyld_get_image_vmaddr_slide (layout_data->current_image );
273- addr_mask = ~0 ;
274271 }
275272
276- segment->start = ( sc->vmaddr & addr_mask) + base_virt_addr;
273+ segment->start = sc->vmaddr + base_virt_addr;
277274 segment->end = segment->start + sc->vmsize ;
278275 // Most callers don't need section information, so only fill this struct
279276 // when required.
@@ -283,7 +280,6 @@ static bool NextSegmentLoad(MemoryMappedSegment *segment,
283280 (const char *)lc + sizeof (SegmentCommand);
284281 seg_data->lc_type = kLCSegment ;
285282 seg_data->base_virt_addr = base_virt_addr;
286- seg_data->addr_mask = addr_mask;
287283 internal_strncpy (seg_data->name , sc->segname ,
288284 ARRAY_SIZE (seg_data->name ));
289285 }
0 commit comments