}\r
\r
PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb);\r
- StringTable = (UINT16 *) (IsPeiDb ? mPcdDatabase->PeiDb.Init.StringTable :\r
- mPcdDatabase->DxeDb.Init.StringTable);\r
+ \r
+ if (IsPeiDb) {\r
+ StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
+ } else {\r
+ StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
+ }\r
+ \r
\r
Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK;\r
\r
break;\r
\r
case PCD_TYPE_HII:\r
- GuidTable = (EFI_GUID *) (IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable :\r
- mPcdDatabase->DxeDb.Init.GuidTable);\r
+ if (IsPeiDb) {\r
+ GuidTable = (EFI_GUID *) (&mPcdDatabase->PeiDb.Init.GuidTable[0]);\r
+ } else {\r
+ GuidTable = (EFI_GUID *) (&mPcdDatabase->DxeDb.Init.GuidTable[0]);\r
+ }\r
\r
VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);\r
\r
\r
PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb);\r
\r
- StringTable = (UINT16*) (IsPeiDb ? mPcdDatabase->PeiDb.Init.StringTable :\r
- mPcdDatabase->DxeDb.Init.StringTable);\r
+ if (IsPeiDb) {\r
+ StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]);\r
+ } else {\r
+ StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]);\r
+ }\r
+\r
\r
InternalData = PcdDb + Offset;\r
\r
}\r
}\r
\r
- GuidTable = (EFI_GUID *)(IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable :\r
- mPcdDatabase->DxeDb.Init.GuidTable);\r
+ if (IsPeiDb) {\r
+ GuidTable = (EFI_GUID *) (&mPcdDatabase->PeiDb.Init.GuidTable[0]);\r
+ } else {\r
+ GuidTable = (EFI_GUID *) (&mPcdDatabase->DxeDb.Init.GuidTable[0]);\r
+ }\r
\r
VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);\r
\r