Browse Source

* 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 -

nickysn 6 years ago
parent
commit
d24cfcb31c
1 changed files with 7 additions and 1 deletions
  1. 7 1
      compiler/ogomf.pas

+ 7 - 1
compiler/ogomf.pas

@@ -3985,10 +3985,12 @@ 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
@@ -3996,7 +3998,11 @@ cleanup:
                 exesym:=TExeSymbol(ExeSymbolList.Find(ImportSymbol.MangledName));
                 exesym:=TExeSymbol(ExeSymbolList.Find(ImportSymbol.MangledName));
                 if assigned(exesym) then
                 if assigned(exesym) then
                   begin
                   begin
-                    ImportedNameTable.AddImportedName(ImportLibrary.Name);
+                    if not LibNameAdded then
+                      begin
+                        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;