From d0ef841c8e46327b029965f2b4a79127428ce6a5 Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Fri, 6 Apr 2018 07:14:00 +0800 Subject: [PATCH 1/1] BaseTools: change more list to set potentially accelerate "in" testing remove uncalled function Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- BaseTools/Source/Python/AutoGen/AutoGen.py | 5 ++-- .../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 b646738ea0..5baabf2a0c 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -4179,7 +4179,7 @@ class ModuleAutoGen(AutoGen): PcdItem = PcdComments + '\n ' + PcdItem AsBuiltInfDict['patchablepcd_item'].append(PcdItem) - HiiPcds = [] + HiiPcds = set() for Pcd in Pcds + VfrPcds: PcdComments = '' PcdCommentList = [] @@ -4202,8 +4202,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 0daed7da61..1663ddd21b 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.39.2