## 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
\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
#\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