Sfoglia il codice sorgente

+ also write the nonresident name table

git-svn-id: trunk@42630 -
nickysn 6 anni fa
parent
commit
7bb6b525b1
1 ha cambiato i file con 7 aggiunte e 0 eliminazioni
  1. 7 0
      compiler/ogomf.pas

+ 7 - 0
compiler/ogomf.pas

@@ -670,6 +670,7 @@ interface
         FCurrExeMetaSec: TNewExeMetaSection;
         FResourceTable: TNewExeResourceTable;
         FResidentNameTable: TNewExeExportNameTable;
+        FNonresidentNameTable: TNewExeExportNameTable;
         FModuleReferenceTable: TNewExeModuleReferenceTable;
         FImportedNameTable: TNewExeImportedNameTable;
         FEntryTable: TNewExeEntryTable;
@@ -685,6 +686,7 @@ interface
         property CurrExeMetaSec: TNewExeMetaSection read FCurrExeMetaSec write FCurrExeMetaSec;
         property ResourceTable: TNewExeResourceTable read FResourceTable;
         property ResidentNameTable: TNewExeExportNameTable read FResidentNameTable;
+        property NonresidentNameTable: TNewExeExportNameTable read FNonresidentNameTable;
         property ModuleReferenceTable: TNewExeModuleReferenceTable read FModuleReferenceTable;
         property ImportedNameTable: TNewExeImportedNameTable read FImportedNameTable;
         property EntryTable: TNewExeEntryTable read FEntryTable;
@@ -4322,6 +4324,8 @@ cleanup:
         Header.ImportedNameTableStart:=Header.ModuleReferenceTableStart+ModuleReferenceTable.Size;
         Header.EntryTableOffset:=Header.ImportedNameTableStart+ImportedNameTable.Size;
         Header.EntryTableLength:=EntryTable.Size;
+        Header.NonresidentNameTableStart:=Header.EntryTableOffset+Header.EntryTableLength+Length(Header.MsDosStub);
+        Header.NonresidentNameTableLength:=NonresidentNameTable.Size;
 
         Header.WriteTo(FWriter);
 
@@ -4333,6 +4337,7 @@ cleanup:
         ModuleReferenceTable.WriteTo(FWriter,ImportedNameTable);
         ImportedNameTable.WriteTo(FWriter);
         EntryTable.WriteTo(FWriter);
+        NonresidentNameTable.WriteTo(FWriter);
 
         { todo: write the rest of the file as well }
 
@@ -4494,6 +4499,7 @@ cleanup:
         CurrExeMetaSec:=nemsNone;
         FResourceTable:=TNewExeResourceTable.Create;
         FResidentNameTable:=TNewExeExportNameTable.Create;
+        FNonresidentNameTable:=TNewExeExportNameTable.Create;
         FModuleReferenceTable:=TNewExeModuleReferenceTable.Create;
         FImportedNameTable:=TNewExeImportedNameTable.Create;
         FEntryTable:=TNewExeEntryTable.Create;
@@ -4504,6 +4510,7 @@ cleanup:
         FEntryTable.Free;
         FImportedNameTable.Free;
         FModuleReferenceTable.Free;
+        FNonresidentNameTable.Free;
         FResidentNameTable.Free;
         FResourceTable.Free;
         FHeader.Free;