- if (FileFormTags->VariableDefinitions->VariableId == NvMapListNode->VariablePack->VariableId) {\r
- NvMap = (VOID *) ((CHAR8 *) NvMapListNode->VariablePack + sizeof (EFI_HII_VARIABLE_PACK) + NvMapListNode->VariablePack->VariableNameLength);\r
- NvMapSize = NvMapListNode->VariablePack->Header.Length - sizeof (EFI_HII_VARIABLE_PACK) - NvMapListNode->VariablePack->VariableNameLength;\r
- break;\r
+ \r
+ for (UiDefaultVarDef = FileFormTags->VariableDefinitions;\r
+ UiDefaultVarDef != NULL; \r
+ UiDefaultVarDef = UiDefaultVarDef->Next ) {\r
+ \r
+ if (UiDefaultVarDef->VariableId == NvMapListNode->VariablePack->VariableId) {\r
+ NvMap = (VOID *) ((CHAR8 *) NvMapListNode->VariablePack + sizeof (EFI_HII_VARIABLE_PACK) + NvMapListNode->VariablePack->VariableNameLength);\r
+ NvMapSize = NvMapListNode->VariablePack->Header.Length - sizeof (EFI_HII_VARIABLE_PACK) - NvMapListNode->VariablePack->VariableNameLength;\r
+ //\r
+ // Free the buffer that was allocated.\r
+ //\r
+ FreePool (UiDefaultVarDef->NvRamMap);\r
+ FreePool (UiDefaultVarDef->FakeNvRamMap);\r
+ \r
+ //\r
+ // Allocate, copy the NvRamMap.\r
+ //\r
+ UiDefaultVarDef->VariableFakeSize = (UINT16) (UiDefaultVarDef->VariableFakeSize - UiDefaultVarDef->VariableSize);\r
+ UiDefaultVarDef->VariableSize = (UINT16) NvMapSize;\r
+ UiDefaultVarDef->VariableFakeSize = (UINT16) (UiDefaultVarDef->VariableFakeSize + UiDefaultVarDef->VariableSize);\r
+ \r
+ UiDefaultVarDef->NvRamMap = AllocateZeroPool (FileFormTags->VariableDefinitions->VariableSize);\r
+ ASSERT (UiDefaultVarDef->NvRamMap != NULL);\r
+ \r
+ UiDefaultVarDef->FakeNvRamMap = AllocateZeroPool (NvMapSize + UiDefaultVarDef->VariableFakeSize);\r
+ ASSERT (UiDefaultVarDef->FakeNvRamMap != NULL);\r
+ \r
+ CopyMem (UiDefaultVarDef->NvRamMap, NvMap, NvMapSize);\r
+ break;\r