From: Feng, Bob C Date: Sun, 9 Dec 2018 13:44:32 +0000 (+0800) Subject: BaseTools: Fixed the build fail issue for cases X-Git-Tag: edk2-stable201903~476 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=48e890457b06263c1faf04de67652816402f8e06 BaseTools: Fixed the build fail issue for cases https://bugzilla.tianocore.org/show_bug.cgi?id=1386 This patch is going to fix the regression issue that is introduced by commit 72a1d77694d51914c0dd6aa97dbfa58634b0a4a5 The issue will happen in the following cases: 1. There is no Pcd value assignment in Dsc file 2. There are duplicate Pcd filed assignment Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng Cc: Liming Gao Cc: Leif Lindholm Reviewed-by: Liming Gao --- diff --git a/BaseTools/Source/Python/Workspace/BuildClassObject.py b/BaseTools/Source/Python/Workspace/BuildClassObject.py index 008eee1a16..d02232b546 100644 --- a/BaseTools/Source/Python/Workspace/BuildClassObject.py +++ b/BaseTools/Source/Python/Workspace/BuildClassObject.py @@ -291,7 +291,7 @@ class StructurePcd(PcdClassObject): if DimensionAttr not in self.SkuOverrideValues[SkuName][DefaultStoreName]: self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr] = collections.OrderedDict() if FieldName in self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr]: - del self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName][DimensionAttr] + del self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName] self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName] = [Value.strip(), FileName, LineNo] return self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName] diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py index 4bd52619a9..eaedba0c12 100644 --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py @@ -1203,7 +1203,7 @@ class DscParser(MetaFileParser): return TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT, 1) self._CurrentPcdName = TokenList[0] - if TokenList[1].strip().startswith("{CODE"): + if len(TokenList) == 2 and TokenList[1].strip().startswith("{CODE"): self._PcdDataTypeCODE = True self._PcdCodeValue = TokenList[1].strip()