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 <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>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
Carsey, Jaben 2018-04-20 23:51:27 +08:00 committed by Yonghong Zhu
parent b813843cca
commit 9759febdb8
1 changed files with 5 additions and 6 deletions

View File

@ -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)