mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-22 10:19:32 +01: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
|
begin
|
||||||
{ call cpu/fpu initialisation routine }
|
{ call cpu/fpu initialisation routine }
|
||||||
fpc_cpuinit;
|
fpc_cpuinit;
|
||||||
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
InitFinalTable
|
with PInitFinalTable(EntryInformation.InitFinalTable)^ do
|
||||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do
|
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
|
with InitFinalTable do
|
||||||
|
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
begin
|
begin
|
||||||
for i:=1 to TableCount do
|
for i:=1 to TableCount do
|
||||||
begin
|
begin
|
||||||
@ -808,9 +810,11 @@ end;
|
|||||||
|
|
||||||
procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS'];
|
procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS'];
|
||||||
begin
|
begin
|
||||||
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
InitFinalTable
|
with PInitFinalTable(EntryInformation.InitFinalTable)^ do
|
||||||
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do
|
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
|
with InitFinalTable do
|
||||||
|
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
||||||
begin
|
begin
|
||||||
while (InitCount>0) do
|
while (InitCount>0) do
|
||||||
begin
|
begin
|
||||||
|
|||||||
@ -52,15 +52,18 @@ procedure init_all_unit_threadvars;
|
|||||||
var
|
var
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
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}
|
{$ifdef DEBUG_MT}
|
||||||
WriteLn ('init_all_unit_threadvars (',
|
WriteLn ('init_all_unit_threadvars (',count,') units');
|
||||||
{$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');
|
|
||||||
{$endif}
|
{$endif}
|
||||||
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
for i := 1 to count do
|
||||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do
|
init_unit_threadvars (tables[i]);
|
||||||
init_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
end;
|
||||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -83,14 +86,18 @@ procedure copy_all_unit_threadvars;
|
|||||||
var
|
var
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
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}
|
{$ifdef DEBUG_MT}
|
||||||
WriteLn ('copy_all_unit_threadvars (',{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
WriteLn ('copy_all_unit_threadvars (',count,') units');
|
||||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count,') units');
|
|
||||||
{$endif}
|
{$endif}
|
||||||
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
for i := 1 to count do
|
||||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do
|
copy_unit_threadvars (tables[i]);
|
||||||
copy_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
|
end;
|
||||||
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure InitThreadVars(RelocProc : Pointer);
|
procedure InitThreadVars(RelocProc : Pointer);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user