]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
Sync BaseTools Branch (version r2362) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / WorkspaceDatabase.py
index 4bfa7d8ffd53cc7a2199e06a0c010df8867d21e7..ac2ca057ccdf9682ac5e51e2a2895a70ae77db84 100644 (file)
@@ -1896,7 +1896,7 @@ class InfBuildData(ModuleBuildClassObject):
     ## Retrieve PCDs used in this module\r
     def _GetPcds(self):\r
         if self._Pcds == None:\r
-            self._Pcds = {}\r
+            self._Pcds = sdict()\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_PATCHABLE_IN_MODULE))\r
             self._Pcds.update(self._GetPcd(MODEL_PCD_FEATURE_FLAG))\r
@@ -1996,7 +1996,7 @@ class InfBuildData(ModuleBuildClassObject):
 \r
     ## Retrieve PCD for given type\r
     def _GetPcd(self, Type):\r
-        Pcds = {}\r
+        Pcds = sdict()\r
         PcdDict = tdict(True, 4)\r
         PcdList = []\r
         RecordList = self._RawData[Type, self._Arch, self._Platform]\r
@@ -2071,18 +2071,9 @@ class InfBuildData(ModuleBuildClassObject):
                     #\r
                     # Check hexadecimal token value length and format.\r
                     #\r
+                    ReIsValidPcdTokenValue = re.compile(r"^[0][x|X][0]*[0-9a-fA-F]{1,8}$", re.DOTALL)\r
                     if Pcd.TokenValue.startswith("0x") or Pcd.TokenValue.startswith("0X"):\r
-                        if len(Pcd.TokenValue) < 3 or len(Pcd.TokenValue) > 10:\r
-                            EdkLogger.error(\r
-                                    'build',\r
-                                    FORMAT_INVALID,\r
-                                    "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid:" % (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)),\r
-                                    File =self.MetaFile, Line=LineNo,\r
-                                    ExtraData=None\r
-                                    )                          \r
-                        try:\r
-                            int (Pcd.TokenValue, 16)\r
-                        except:\r
+                        if ReIsValidPcdTokenValue.match(Pcd.TokenValue) == None:\r
                             EdkLogger.error(\r
                                     'build',\r
                                     FORMAT_INVALID,\r