From 9759febdb83fc38b83f668a553d06f7f0b5acace Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Fri, 20 Apr 2018 23:51:27 +0800 Subject: BaseTools: Workspace - refactor GetStructurePcdInfo the function doesn't use self and can be static defaultdict replaces dict and removes the dict initialization code 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/Workspace/DscBuildData.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'BaseTools/Source/Python/Workspace/DscBuildData.py') diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py index e335b3df85..fdf20f9b09 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -39,7 +39,7 @@ import Common.GlobalData as GlobalData import subprocess from Common.Misc import SaveFileOnChange from Workspace.BuildClassObject import PlatformBuildClassObject, StructurePcd, PcdClassObject, ModuleBuildClassObject -from collections import OrderedDict +from collections import OrderedDict,defaultdict PcdValueInitName = 'PcdValueInit' @@ -1181,11 +1181,10 @@ class DscBuildData(PlatformBuildClassObject): options[Key] += ' ' + Option return self._ModuleTypeOptions[Edk, ModuleType] - def GetStructurePcdInfo(self, PcdSet): - structure_pcd_data = {} + @staticmethod + def GetStructurePcdInfo(PcdSet): + structure_pcd_data = defaultdict(list) for item in PcdSet: - if (item[0],item[1]) not in structure_pcd_data: - structure_pcd_data[(item[0],item[1])] = [] structure_pcd_data[(item[0],item[1])].append(item) return structure_pcd_data @@ -1292,7 +1291,7 @@ class DscBuildData(PlatformBuildClassObject): S_PcdSet.append([ TokenSpaceGuid.split(".")[0],TokenSpaceGuid.split(".")[1], PcdCName,SkuName, default_store,Dummy5, AnalyzePcdExpression(Setting)[0]]) # handle pcd value override - StrPcdSet = self.GetStructurePcdInfo(S_PcdSet) + StrPcdSet = DscBuildData.GetStructurePcdInfo(S_PcdSet) S_pcd_set = OrderedDict() for str_pcd in StrPcdSet: str_pcd_obj = Pcds.get((str_pcd[1], str_pcd[0]), None) -- cgit v1.2.3