Explorar el Código

Pass further main program data through the indirect entry information.

rtl/inc/systemh.inc:
  + TEntryInformation: add Pointer fields ResourceStringTables, ResStrInitTables, WideInitTables (for targets with separate WideString type) and ResLocation (not used on Windows, but since most other targets don't have Windows' resource system it's not part of OS)
rtl/java/jsystemh_types.inc:
  + TEntryInformation: adjust for consistency reasons
rtl/win32/sysinit.inc:
  * SysInitEntryInformation: initialize with pointers to the correct tables

git-svn-id: trunk@33027 -
svenbarth hace 9 años
padre
commit
7b67ead440
Se han modificado 3 ficheros con 28 adiciones y 0 borrados
  1. 6 0
      rtl/inc/systemh.inc
  2. 6 0
      rtl/java/jsystemh_types.inc
  3. 16 0
      rtl/win32/sysinit.inc

+ 6 - 0
rtl/inc/systemh.inc

@@ -604,6 +604,12 @@ type
   TEntryInformation = record
   TEntryInformation = record
     InitFinalTable : Pointer;
     InitFinalTable : Pointer;
     ThreadvarTablesTable : Pointer;
     ThreadvarTablesTable : Pointer;
+    ResourceStringTables : Pointer;
+    ResStrInitTables : Pointer;
+    {$ifndef FPC_WIDESTRING_EQUAL_UNICODESTRING}
+    WideInitTables : Pointer;
+    {$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
+    ResLocation : Pointer;
     PascalMain : Procedure;
     PascalMain : Procedure;
     valgrind_used : boolean;
     valgrind_used : boolean;
     {$ifdef HAS_ENTRYINFORMATION_OS}
     {$ifdef HAS_ENTRYINFORMATION_OS}

+ 6 - 0
rtl/java/jsystemh_types.inc

@@ -540,6 +540,12 @@ type
   TEntryInformation = record
   TEntryInformation = record
     InitFinalTable : Pointer;
     InitFinalTable : Pointer;
     ThreadvarTablesTable : Pointer;
     ThreadvarTablesTable : Pointer;
+    ResourceStringTables : Pointer;
+    ResStrInitTables : Pointer;
+    {$ifndef FPC_WIDESTRING_EQUAL_UNICODESTRING}
+    WideInitTables : Pointer;
+    {$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
+    ResLocation : Pointer;
     PascalMain : Procedure;
     PascalMain : Procedure;
     valgrind_used : boolean;
     valgrind_used : boolean;
     {$ifdef HAS_ENTRYINFORMATION_OS}
     {$ifdef HAS_ENTRYINFORMATION_OS}

+ 16 - 0
rtl/win32/sysinit.inc

@@ -19,6 +19,11 @@
 
 
       InitFinalTable : record end; external name 'INITFINAL';
       InitFinalTable : record end; external name 'INITFINAL';
       ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
       ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
+      WideInitTables : record end; external name 'FPC_WIDEINITTABLES';
+ {$ifdef FPC_HAS_RESSTRINITS}
+      ResStrInitTables : record end; external name 'FPC_RESSTRINITTABLES';
+ {$endif FPC_HAS_RESSTRINITS}
+      ResourceStringTables : record end; external name 'FPC_RESOURCESTRINGTABLES';
       valgrind_used : boolean;external name '__fpc_valgrind';
       valgrind_used : boolean;external name '__fpc_valgrind';
 
 
 {$if defined(FPC_USE_TLS_DIRECTORY) or defined(FPC_SECTION_THREADVARS)}
 {$if defined(FPC_USE_TLS_DIRECTORY) or defined(FPC_SECTION_THREADVARS)}
@@ -48,6 +53,14 @@
       SysInitEntryInformation : TEntryInformation = (
       SysInitEntryInformation : TEntryInformation = (
         InitFinalTable : @InitFinalTable;
         InitFinalTable : @InitFinalTable;
         ThreadvarTablesTable : @ThreadvarTablesTable;
         ThreadvarTablesTable : @ThreadvarTablesTable;
+        ResourceStringTables : @ResourceStringTables;
+{$ifdef FPC_HAS_RESSTRINITS}
+        ResStrInitTables : @ResStrInitTables;
+{$else FPC_HAS_RESSTRINITS}
+        ResStrInitTables : nil;
+{$endif FPC_HAS_RESSTRINITS}
+        WideInitTables : @WideInitTables;
+        ResLocation : nil;
         PascalMain : @PascalMain;
         PascalMain : @PascalMain;
         valgrind_used : false;
         valgrind_used : false;
         OS : (
         OS : (
@@ -61,6 +74,9 @@
         { valgind_used is the only thng that can change at startup
         { valgind_used is the only thng that can change at startup
         EntryInformation.InitFinalTable:=@InitFinalTable;
         EntryInformation.InitFinalTable:=@InitFinalTable;
         EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
         EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
+        EntryInformation.ResourceStringTables:=@ResourceStringTables;
+        EntryInformation.ResStrInitTables:=@ResStrInitTables;
+        EntryInformation.WideInitTables:=@WideInitTables;
         EntryInformation.OS.asm_exit:=@asm_exit;
         EntryInformation.OS.asm_exit:=@asm_exit;
         EntryInformation.PascalMain:=@PascalMain;}
         EntryInformation.PascalMain:=@PascalMain;}
         SysInitEntryInformation.valgrind_used:=valgrind_used;
         SysInitEntryInformation.valgrind_used:=valgrind_used;