IN UINTN TokenNumber\r
)\r
{\r
+ UINTN TmpTokenNumber;\r
UINT32 *LocalTokenNumberTable;\r
UINT32 LocalTokenNumber;\r
UINTN Size;\r
//\r
TokenNumber--;\r
\r
+ //\r
+ // Backup the TokenNumber passed in as GetPtrTypeSize need the original TokenNumber\r
+ // \r
+ TmpTokenNumber = TokenNumber;\r
+\r
LocalTokenNumberTable = IsPeiDb ? (UINT32 *)((UINT8 *)mPcdDatabase.PeiDb + mPcdDatabase.PeiDb->LocalTokenNumberTableOffset) : \r
(UINT32 *)((UINT8 *)mPcdDatabase.DxeDb + mPcdDatabase.DxeDb->LocalTokenNumberTableOffset);\r
TokenNumber = IsPeiDb ? TokenNumber : TokenNumber - mPeiLocalTokenCount;\r
\r
if ((LocalTokenNumber & PCD_TYPE_SKU_ENABLED) == PCD_TYPE_SKU_ENABLED) {\r
if (Size == 0) {\r
- GetPtrTypeSize (TokenNumber, &MaxSize);\r
+ GetPtrTypeSize (TmpTokenNumber, &MaxSize);\r
} else {\r
MaxSize = Size;\r
}\r
case PCD_DATUM_TYPE_POINTER:\r
return EFI_PCD_TYPE_PTR;\r
case PCD_DATUM_TYPE_UINT8:\r
- if (LocalTokenNumber & PCD_DATUM_TYPE_UINT8_BOOLEAN) {\r
+ if ((LocalTokenNumber & PCD_DATUM_TYPE_UINT8_BOOLEAN) == PCD_DATUM_TYPE_UINT8_BOOLEAN) {\r
return EFI_PCD_TYPE_BOOL;\r
} else {\r
return EFI_PCD_TYPE_8;\r
// Need to get the full PCD name.\r
//\r
Name = AllocateZeroPool (AsciiStrSize (TokenSpaceName) + AsciiStrSize (PcdName));\r
+ ASSERT (Name != NULL);\r
//\r
// Catenate TokenSpaceCName and PcdCName with a '.' to form the full PCD name.\r
//\r
UINT32 LocalTokenNumber;\r
BOOLEAN IsPeiDb;\r
\r
- if (!FeaturePcdGet (PcdPcdInfoGeneration)) {\r
- return EFI_UNSUPPORTED;\r
- }\r
-\r
ASSERT (PcdInfo != NULL);\r
\r
Status = EFI_NOT_FOUND;\r