From f7dcad6f92688f34ef3461f8b143de5825a8319b Mon Sep 17 00:00:00 2001 From: sergei Date: Mon, 21 Mar 2011 21:12:46 +0000 Subject: [PATCH] * Rewrote those insane {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION} into somewhat more readable form. git-svn-id: trunk@17163 - --- rtl/inc/system.inc | 16 ++++++++++------ rtl/inc/threadvr.inc | 33 ++++++++++++++++++++------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index fb020c1d0b..40c3317845 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -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 diff --git a/rtl/inc/threadvr.inc b/rtl/inc/threadvr.inc index 538b99eac2..02af72e96d 100644 --- a/rtl/inc/threadvr.inc +++ b/rtl/inc/threadvr.inc @@ -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);