[edk2] [PATCH v1 12/14] BaseTools: change more list to set

Jaben Carsey posted 14 patches 6 years, 6 months ago
[edk2] [PATCH v1 12/14] BaseTools: change more list to set
Posted by Jaben Carsey 6 years, 6 months ago
potentially accelerate "in" testing
remove uncalled function

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py     |  5 ++--
 BaseTools/Source/Python/AutoGen/BuildEngine.py | 29 ++++++--------------
 2 files changed, 10 insertions(+), 24 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index 42536a61535a..342cd618c605 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -4191,7 +4191,7 @@ class ModuleAutoGen(AutoGen):
                     PcdItem = PcdComments + '\n  ' + PcdItem
                 AsBuiltInfDict['patchablepcd_item'].append(PcdItem)
 
-        HiiPcds = []
+        HiiPcds = set()
         for Pcd in Pcds + VfrPcds:
             PcdComments = ''
             PcdCommentList = []
@@ -4214,8 +4214,7 @@ class ModuleAutoGen(AutoGen):
                 #
                 if (SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in HiiPcds:
                     continue
-                else:
-                    HiiPcds.append((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
+                HiiPcds.add((SkuId, Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
             if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) in self._PcdComments:
                 PcdCommentList = self._PcdComments[Pcd.TokenSpaceGuidCName, Pcd.TokenCName][:]
             if HiiInfo:
diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py
index 0daed7da610d..1663ddd21bb0 100644
--- a/BaseTools/Source/Python/AutoGen/BuildEngine.py
+++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py
@@ -161,7 +161,7 @@ class FileBuildRule:
 
         # Check input files
         self.IsMultipleInput = False
-        self.SourceFileExtList = []
+        self.SourceFileExtList = set()
         for File in Input:
             Base, Ext = os.path.splitext(File)
             if Base.find("*") >= 0:
@@ -172,8 +172,7 @@ class FileBuildRule:
                 # There's no "*" and "?" in file name
                 self.ExtraSourceFileList.append(File)
                 continue
-            if Ext not in self.SourceFileExtList:
-                self.SourceFileExtList.append(Ext)
+            self.SourceFileExtList.add(Ext)
 
         # Check output files
         self.DestFileList = []
@@ -194,16 +193,6 @@ class FileBuildRule:
         CommandString = "\n\t".join(self.CommandList)
         return "%s : %s\n\t%s" % (DestString, SourceString, CommandString)
 
-    ## Check if given file extension is supported by this rule
-    #
-    #   @param  FileExt     The extension of a file
-    #
-    #   @retval True        If the extension is supported
-    #   @retval False       If the extension is not supported
-    #
-    def IsSupported(self, FileExt):
-        return FileExt in self.SourceFileExtList
-
     def Instantiate(self, Macros={}):
         NewRuleObject = copy.copy(self)
         NewRuleObject.BuildTargets = {}
@@ -365,8 +354,8 @@ class BuildRule:
         self._State = ""
         self._RuleInfo = tdict(True, 2)     # {toolchain family : {"InputFile": {}, "OutputFile" : [], "Command" : []}}
         self._FileType = ''
-        self._BuildTypeList = []
-        self._ArchList = []
+        self._BuildTypeList = set()
+        self._ArchList = set()
         self._FamilyList = []
         self._TotalToolChainFamilySet = set()
         self._RuleObjectList = [] # FileBuildRule object list
@@ -456,8 +445,8 @@ class BuildRule:
     #
     def ParseSectionHeader(self, LineIndex):
         self._RuleInfo = tdict(True, 2)
-        self._BuildTypeList = []
-        self._ArchList = []
+        self._BuildTypeList = set()
+        self._ArchList = set()
         self._FamilyList = []
         self._TotalToolChainFamilySet = set()
         FileType = ''
@@ -494,10 +483,8 @@ class BuildRule:
                     BuildType = TokenList[1]
                 if len(TokenList) > 2:
                     Arch = TokenList[2]
-            if BuildType not in self._BuildTypeList:
-                self._BuildTypeList.append(BuildType)
-            if Arch not in self._ArchList:
-                self._ArchList.append(Arch)
+            self._BuildTypeList.add(BuildType)
+            self._ArchList.add(Arch)
 
         if 'COMMON' in self._BuildTypeList and len(self._BuildTypeList) > 1:
             EdkLogger.error("build", FORMAT_INVALID,
-- 
2.16.2.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel