diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c index b9a279ec73..3369585bcc 100644 --- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c +++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c @@ -1256,13 +1256,13 @@ EvacuateTempRam ( } for (FvIndex = 0; FvIndex < Private->FvCount; FvIndex++) { if (Private->Fv[FvIndex].FvHandle == PeiCoreFvHandle.FvHandle) { - PeiCoreFvHandle = Private->Fv[FvIndex]; + CopyMem (&PeiCoreFvHandle, &Private->Fv[FvIndex], sizeof (PEI_CORE_FV_HANDLE)); break; } } Status = EFI_SUCCESS; - ConvertPeiCorePpiPointers (Private, PeiCoreFvHandle); + ConvertPeiCorePpiPointers (Private, &PeiCoreFvHandle); for (FvIndex = 0; FvIndex < Private->FvCount; FvIndex++) { FvHeader = Private->Fv[FvIndex].FvHeader; diff --git a/MdeModulePkg/Core/Pei/PeiMain.h b/MdeModulePkg/Core/Pei/PeiMain.h index c27e8fc33b..daa48b4c5f 100644 --- a/MdeModulePkg/Core/Pei/PeiMain.h +++ b/MdeModulePkg/Core/Pei/PeiMain.h @@ -542,7 +542,7 @@ ConvertPpiPointersFv ( VOID ConvertPeiCorePpiPointers ( IN PEI_CORE_INSTANCE *PrivateData, - PEI_CORE_FV_HANDLE CoreFvHandle + IN PEI_CORE_FV_HANDLE *CoreFvHandle ); /** diff --git a/MdeModulePkg/Core/Pei/Ppi/Ppi.c b/MdeModulePkg/Core/Pei/Ppi/Ppi.c index 541047d98a..0ad71d116f 100644 --- a/MdeModulePkg/Core/Pei/Ppi/Ppi.c +++ b/MdeModulePkg/Core/Pei/Ppi/Ppi.c @@ -1062,7 +1062,7 @@ ProcessPpiListFromSec ( VOID ConvertPeiCorePpiPointers ( IN PEI_CORE_INSTANCE *PrivateData, - PEI_CORE_FV_HANDLE CoreFvHandle + IN PEI_CORE_FV_HANDLE *CoreFvHandle ) { EFI_FV_FILE_INFO FileInfo; @@ -1079,16 +1079,16 @@ ConvertPeiCorePpiPointers ( // // Find the PEI Core in the BFV in temporary memory. // - Status = CoreFvHandle.FvPpi->FindFileByType ( - CoreFvHandle.FvPpi, + Status = CoreFvHandle->FvPpi->FindFileByType ( + CoreFvHandle->FvPpi, EFI_FV_FILETYPE_PEI_CORE, - CoreFvHandle.FvHandle, + CoreFvHandle->FvHandle, &PeiCoreFileHandle ); ASSERT_EFI_ERROR (Status); if (!EFI_ERROR (Status)) { - Status = CoreFvHandle.FvPpi->GetFileInfo (CoreFvHandle.FvPpi, PeiCoreFileHandle, &FileInfo); + Status = CoreFvHandle->FvPpi->GetFileInfo (CoreFvHandle->FvPpi, PeiCoreFileHandle, &FileInfo); ASSERT_EFI_ERROR (Status); Status = PeiGetPe32Data (PeiCoreFileHandle, &PeiCoreImageBase);