BOOLEAN PeimNeedingDispatch;\r
BOOLEAN PeimDispatchOnThisPass;\r
UINTN SaveCurrentPeimCount;\r
+ UINTN SaveCurrentFvCount;\r
EFI_PEI_FILE_HANDLE SaveCurrentFileHandle;\r
VOID *TopOfStack;\r
PEI_CORE_PARAMETERS PeiCoreParameters;\r
// update the modules' status from PEIM_STATE_REGISITER_FOR_SHADOW to PEIM_STATE_DONE.\r
//\r
SaveCurrentPeimCount = Private->CurrentPeimCount;\r
+ SaveCurrentFvCount = Private->CurrentPeimFvCount;\r
SaveCurrentFileHandle = Private->CurrentFileHandle;\r
\r
- for (Index1 = 0;Index1 <= Private->CurrentPeimFvCount; Index1++) {\r
+ for (Index1 = 0; Index1 <= SaveCurrentFvCount; Index1++) {\r
for (Index2 = 0; (Index2 < PEI_CORE_MAX_PEIM_PER_FV) && (Private->Fv[Index1].FvFileHandles[Index2] != NULL); Index2++) {\r
if (Private->Fv[Index1].PeimState[Index2] == PEIM_STATE_REGISITER_FOR_SHADOW) {\r
PeimFileHandle = Private->Fv[Index1].FvFileHandles[Index2]; \r
// PEIM_STATE_REGISITER_FOR_SHADOW move to PEIM_STATE_DONE\r
//\r
Private->Fv[Index1].PeimState[Index2]++;\r
- Private->CurrentFileHandle = PeimFileHandle;\r
- Private->CurrentPeimCount = Index2; \r
+ Private->CurrentFileHandle = PeimFileHandle;\r
+ Private->CurrentPeimFvCount = Index1; \r
+ Private->CurrentPeimCount = Index2; \r
//\r
// Call the PEIM entry point\r
//\r
}\r
}\r
}\r
- Private->CurrentFileHandle = SaveCurrentFileHandle; \r
- Private->CurrentPeimCount = SaveCurrentPeimCount; \r
+ Private->CurrentFileHandle = SaveCurrentFileHandle; \r
+ Private->CurrentPeimFvCount = SaveCurrentFvCount; \r
+ Private->CurrentPeimCount = SaveCurrentPeimCount; \r
}\r
\r
//\r