BaseTools: Fixed the build fail issue for cases
authorFeng, Bob C <bob.c.feng@intel.com>
Sun, 9 Dec 2018 13:44:32 +0000 (21:44 +0800)
committerBobCF <bob.c.feng@intel.com>
Sat, 15 Dec 2018 12:16:46 +0000 (20:16 +0800)
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 <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/BuildClassObject.py
BaseTools/Source/Python/Workspace/MetaFileParser.py

index 008eee1..d02232b 100644 (file)
@@ -291,7 +291,7 @@ class StructurePcd(PcdClassObject):
         if DimensionAttr not in self.SkuOverrideValues[SkuName][DefaultStoreName]:\r
             self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr] = collections.OrderedDict()\r
         if FieldName in self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr]:\r
-            del self.SkuOverrideValues[SkuName][DefaultStoreName][FieldName][DimensionAttr]\r
+            del self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName]\r
         self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName] = [Value.strip(), FileName, LineNo]\r
         return self.SkuOverrideValues[SkuName][DefaultStoreName][DimensionAttr][FieldName]\r
 \r
index 4bd5261..eaedba0 100644 (file)
@@ -1203,7 +1203,7 @@ class DscParser(MetaFileParser):
                 return\r
         TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT, 1)\r
         self._CurrentPcdName = TokenList[0]\r
-        if TokenList[1].strip().startswith("{CODE"):\r
+        if len(TokenList) == 2 and TokenList[1].strip().startswith("{CODE"):\r
             self._PcdDataTypeCODE = True\r
             self._PcdCodeValue = TokenList[1].strip()\r
 \r