@@ -236,36 +236,24 @@ static immutable SegRef[] dataSegs = [{SEG_DATA, SECT_DATA},
236
236
ubyte [] getSection (in mach_header* header, intptr_t slide,
237
237
in char * segmentName, in char * sectionName)
238
238
{
239
- if (header.magic == MH_MAGIC )
239
+ version ( X86 )
240
240
{
241
+ assert (header.magic == MH_MAGIC );
241
242
auto sect = getsectbynamefromheader(header,
242
243
segmentName,
243
244
sectionName);
244
-
245
- if (sect ! is null && sect.size > 0 )
246
- {
247
- auto addr = cast (size_t ) sect.addr;
248
- auto size = cast (size_t ) sect.size;
249
- return (cast (ubyte * ) addr)[slide .. slide + size];
250
- }
251
- return null ;
252
-
253
245
}
254
- else if (header.magic == MH_MAGIC_64 )
246
+ else version ( X86_64 )
255
247
{
256
- auto header64 = cast (mach_header_64* ) header;
257
- auto sect = getsectbynamefromheader_64(header64,
258
- segmentName,
259
- sectionName);
260
-
261
- if (sect ! is null && sect.size > 0 )
262
- {
263
- auto addr = cast (size_t ) sect.addr;
264
- auto size = cast (size_t ) sect.size;
265
- return (cast (ubyte * ) addr)[slide .. slide + size];
266
- }
267
- return null ;
248
+ assert (header.magic == MH_MAGIC_64 );
249
+ auto sect = getsectbynamefromheader_64(cast (mach_header_64* )header,
250
+ segmentName,
251
+ sectionName);
268
252
}
269
253
else
270
- return null ;
254
+ static assert (0 , " unimplemented" );
255
+
256
+ if (sect ! is null && sect.size > 0 )
257
+ return (cast (ubyte * )sect.addr + slide)[0 .. cast (size_t )sect.size];
258
+ return null ;
271
259
}
0 commit comments