mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-02-19 19:36:26 +01:00
Declare MaybeSwap in ogcoff interface part to allow use in t_win unit in PostProcessExecutable
This commit is contained in:
parent
21e28e6095
commit
6082b1b2f7
@ -295,6 +295,9 @@ interface
|
||||
COFF_BIG_OBJ_VERSION = 2;
|
||||
|
||||
function ReadDLLImports(const dllname:string;readdllproc:Treaddllproc):boolean;
|
||||
procedure MaybeSwap(var v : tcoffsechdr);
|
||||
procedure MaybeSwap(var v : tcoffheader);
|
||||
procedure MaybeSwap(var v : tcoffpeoptheader);
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
@ -1692,11 +1692,15 @@ implementation
|
||||
Message1(execinfo_f_cant_open_executable,fn);
|
||||
{ read headers }
|
||||
blockread(f,dosheader,sizeof(tdosheader));
|
||||
if source_info.endian<>target_info.endian then
|
||||
dosheader.e_lfanew:=SwapEndian(dosheader.e_lfanew);
|
||||
peheaderpos:=dosheader.e_lfanew;
|
||||
{ skip to headerpos and skip pe magic }
|
||||
seek(f,peheaderpos+4);
|
||||
blockread(f,peheader,sizeof(tcoffheader));
|
||||
maybeswap(peheader);
|
||||
blockread(f,peoptheader,sizeof(tcoffpeoptheader));
|
||||
maybeswap(peoptheader);
|
||||
{ write info }
|
||||
Message1(execinfo_x_codesize,tostr(peoptheader.tsize));
|
||||
Message1(execinfo_x_initdatasize,tostr(peoptheader.dsize));
|
||||
@ -1739,16 +1743,20 @@ implementation
|
||||
peheader.time:=0;
|
||||
{ write header back, skip pe magic }
|
||||
seek(f,peheaderpos+4);
|
||||
maybeswap(peheader);
|
||||
blockwrite(f,peheader,sizeof(tcoffheader));
|
||||
if ioresult<>0 then
|
||||
Message1(execinfo_f_cant_process_executable,fn);
|
||||
maybeswap(peoptheader);
|
||||
blockwrite(f,peoptheader,sizeof(tcoffpeoptheader));
|
||||
if ioresult<>0 then
|
||||
Message1(execinfo_f_cant_process_executable,fn);
|
||||
{ skip to headerpos and skip pe magic }
|
||||
seek(f,peheaderpos+4);
|
||||
blockread(f,peheader,sizeof(tcoffheader));
|
||||
maybeswap(peheader);
|
||||
blockread(f,peoptheader,sizeof(tcoffpeoptheader));
|
||||
maybeswap(peoptheader);
|
||||
{ write the value after the change }
|
||||
Message1(execinfo_x_stackreserve,tostr(peoptheader.SizeOfStackReserve));
|
||||
Message1(execinfo_x_stackcommit,tostr(peoptheader.SizeOfStackCommit));
|
||||
@ -1759,6 +1767,7 @@ implementation
|
||||
for l:=1 to peheader.nsects do
|
||||
begin
|
||||
blockread(f,coffsec,sizeof(tcoffsechdr));
|
||||
maybeswap(coffsec);
|
||||
if coffsec.datapos>0 then
|
||||
begin
|
||||
if secroot=nil then
|
||||
|
||||
Loading…
Reference in New Issue
Block a user