+ also write the nonresident name table

git-svn-id: trunk@42630 -
This commit is contained in:
nickysn 2019-08-10 00:03:51 +00:00
parent d1d2f6b701
commit 7bb6b525b1

View File

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