]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/BuildClassObject.py
BaseTools: Report Error if use SET in Dsc
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / BuildClassObject.py
index 008eee1a1664b4ba1fe16318d34a638ab88ec70e..73920c5153fe3723bd2e9b2a6db6abee1e19eb34 100644 (file)
@@ -19,7 +19,7 @@ from collections import OrderedDict
 from Common.Misc import CopyDict\r
 import copy\r
 StructPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_\[\]]*$')\r
-ArrayIndex = re.compile("\[\s*\d{0,1}\s*\]")\r
+ArrayIndex = re.compile("\[\s*[0-9a-fA-FxX]*\s*\]")\r
 ## PcdClassObject\r
 #\r
 # This Class is used for PcdObject\r
@@ -84,6 +84,7 @@ class PcdClassObject(object):
             maxsize = item.lstrip("[").rstrip("]").strip()\r
             if not maxsize:\r
                 maxsize = "-1"\r
+            maxsize = str(int(maxsize,16)) if maxsize.startswith(("0x","0X")) else maxsize\r
             self._Capacity.append(maxsize)\r
         if hasattr(self, "SkuOverrideValues"):\r
             for sku in self.SkuOverrideValues:\r
@@ -100,7 +101,6 @@ class PcdClassObject(object):
                 for i in range(len(deme)-1):\r
                     if int(deme[i].lstrip("[").rstrip("]").strip()) > int(self._Capacity[i]):\r
                         print "error"\r
-        self._Capacity = [str(int(d) + 1) for d in self._Capacity]\r
         return self._Capacity\r
     @property\r
     def DatumType(self):\r
@@ -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