X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FPCD%2FDxe%2FService.c;h=64bbe4c799fe2e110297ddc921184854366d5efb;hp=c08ac54b618d5db1eea8b08b1ea2116e90667c9f;hb=309e31222f0359c9a3022bb83709db56ca2f9c72;hpb=058bf46eefc3716988077b54975d0d0d5cc3e859 diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Universal/PCD/Dxe/Service.c index c08ac54b61..64bbe4c799 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c @@ -106,8 +106,13 @@ GetWorker ( } PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb); - StringTable = (UINT16 *) (IsPeiDb ? mPcdDatabase->PeiDb.Init.StringTable : - mPcdDatabase->DxeDb.Init.StringTable); + + if (IsPeiDb) { + StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]); + } else { + StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]); + } + Offset = LocalTokenNumber & PCD_DATABASE_OFFSET_MASK; @@ -118,8 +123,11 @@ GetWorker ( break; case PCD_TYPE_HII: - GuidTable = (EFI_GUID *) (IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable : - mPcdDatabase->DxeDb.Init.GuidTable); + if (IsPeiDb) { + GuidTable = (EFI_GUID *) (&mPcdDatabase->PeiDb.Init.GuidTable[0]); + } else { + GuidTable = (EFI_GUID *) (&mPcdDatabase->DxeDb.Init.GuidTable[0]); + } VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset); @@ -761,8 +769,12 @@ SetWorker ( PcdDb = IsPeiDb ? ((UINT8 *) &mPcdDatabase->PeiDb) : ((UINT8 *) &mPcdDatabase->DxeDb); - StringTable = (UINT16*) (IsPeiDb ? mPcdDatabase->PeiDb.Init.StringTable : - mPcdDatabase->DxeDb.Init.StringTable); + if (IsPeiDb) { + StringTable = (UINT16 *) (&mPcdDatabase->PeiDb.Init.StringTable[0]); + } else { + StringTable = (UINT16 *) (&mPcdDatabase->DxeDb.Init.StringTable[0]); + } + InternalData = PcdDb + Offset; @@ -789,8 +801,11 @@ SetWorker ( } } - GuidTable = (EFI_GUID *)(IsPeiDb ? mPcdDatabase->PeiDb.Init.GuidTable : - mPcdDatabase->DxeDb.Init.GuidTable); + if (IsPeiDb) { + GuidTable = (EFI_GUID *) (&mPcdDatabase->PeiDb.Init.GuidTable[0]); + } else { + GuidTable = (EFI_GUID *) (&mPcdDatabase->DxeDb.Init.GuidTable[0]); + } VariableHead = (VARIABLE_HEAD *) (PcdDb + Offset);