mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 18:29:36 +02:00
* Rewrote those insane {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION} into somewhat more readable form.
git-svn-id: trunk@17163 -
This commit is contained in:
parent
3569a26166
commit
f7dcad6f92
@ -779,9 +779,11 @@ var
|
||||
begin
|
||||
{ call cpu/fpu initialisation routine }
|
||||
fpc_cpuinit;
|
||||
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
InitFinalTable
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with PInitFinalTable(EntryInformation.InitFinalTable)^ do
|
||||
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with InitFinalTable do
|
||||
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
begin
|
||||
for i:=1 to TableCount do
|
||||
begin
|
||||
@ -808,9 +810,11 @@ end;
|
||||
|
||||
procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS'];
|
||||
begin
|
||||
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
InitFinalTable
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with PInitFinalTable(EntryInformation.InitFinalTable)^ do
|
||||
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with InitFinalTable do
|
||||
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
begin
|
||||
while (InitCount>0) do
|
||||
begin
|
||||
|
@ -52,15 +52,18 @@ procedure init_all_unit_threadvars;
|
||||
var
|
||||
i : integer;
|
||||
begin
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with PltvInitTablesTable(EntryInformation.ThreadvarTablesTable)^ do
|
||||
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with ThreadvarTablesTable do
|
||||
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
begin
|
||||
{$ifdef DEBUG_MT}
|
||||
WriteLn ('init_all_unit_threadvars (',
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count,') units');
|
||||
WriteLn ('init_all_unit_threadvars (',count,') units');
|
||||
{$endif}
|
||||
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do
|
||||
init_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
|
||||
for i := 1 to count do
|
||||
init_unit_threadvars (tables[i]);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -83,14 +86,18 @@ procedure copy_all_unit_threadvars;
|
||||
var
|
||||
i : integer;
|
||||
begin
|
||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with PltvInitTablesTable(EntryInformation.ThreadvarTablesTable)^ do
|
||||
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
with ThreadvarTablesTable do
|
||||
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
begin
|
||||
{$ifdef DEBUG_MT}
|
||||
WriteLn ('copy_all_unit_threadvars (',{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count,') units');
|
||||
WriteLn ('copy_all_unit_threadvars (',count,') units');
|
||||
{$endif}
|
||||
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do
|
||||
copy_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
|
||||
for i := 1 to count do
|
||||
copy_unit_threadvars (tables[i]);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure InitThreadVars(RelocProc : Pointer);
|
||||
|
Loading…
Reference in New Issue
Block a user