* small optimization in TNewExeOutput.FillImportedNameTable - only add the

library name once, instead of trying to add it (which causes a look up) for
  every imported symbol

git-svn-id: trunk@42612 -
This commit is contained in:
nickysn 2019-08-09 13:35:53 +00:00
parent d5a18f03a8
commit d24cfcb31c

View File

@ -3985,18 +3985,24 @@ cleanup:
ImportLibrary: TImportLibrary; ImportLibrary: TImportLibrary;
ImportSymbol: TImportSymbol; ImportSymbol: TImportSymbol;
exesym: TExeSymbol; exesym: TExeSymbol;
LibNameAdded: Boolean;
begin begin
for i:=0 to FImports.Count-1 do for i:=0 to FImports.Count-1 do
begin begin
ImportLibrary:=TImportLibrary(FImports[i]); ImportLibrary:=TImportLibrary(FImports[i]);
LibNameAdded:=False;
for j:=0 to ImportLibrary.ImportSymbolList.Count-1 do for j:=0 to ImportLibrary.ImportSymbolList.Count-1 do
begin begin
ImportSymbol:=TImportSymbol(ImportLibrary.ImportSymbolList[j]); ImportSymbol:=TImportSymbol(ImportLibrary.ImportSymbolList[j]);
exesym:=TExeSymbol(ExeSymbolList.Find(ImportSymbol.MangledName)); exesym:=TExeSymbol(ExeSymbolList.Find(ImportSymbol.MangledName));
if assigned(exesym) then if assigned(exesym) then
begin
if not LibNameAdded then
begin begin
ImportedNameTable.AddImportedName(ImportLibrary.Name); ImportedNameTable.AddImportedName(ImportLibrary.Name);
LibNameAdded:=True;
end;
if (ImportSymbol.OrdNr=0) and (ImportSymbol.Name<>'') then if (ImportSymbol.OrdNr=0) and (ImportSymbol.Name<>'') then
ImportedNameTable.AddImportedName(ImportSymbol.Name); ImportedNameTable.AddImportedName(ImportSymbol.Name);
end; end;