From 49e70927147f49c388b9e6a383728f7df48ed4c7 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Sun, 26 Oct 2008 07:32:20 +0000 Subject: [PATCH] Add in local variable to ensure that "operands are evaluated in specified order". Otherwise, Intel ICC report "operands are evaluated in unspecified order" build error. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6231 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/Variable/RuntimeDxe/Variable.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c index b5741785b2..bc4e6eb38d 100644 --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c @@ -606,12 +606,16 @@ Returns: UINT8 *ValidBuffer; UINTN MaximumBufferSize; UINTN VariableSize; + UINTN VariableNameSize; + UINTN UpdatingVariableNameSize; UINTN NameSize; UINT8 *CurrPtr; VOID *Point0; VOID *Point1; BOOLEAN FoundAdded; EFI_STATUS Status; + CHAR16 *VariableNamePtr; + CHAR16 *UpdatingVariableNamePtr; VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) VariableBase); @@ -667,9 +671,15 @@ Returns: Variable = NextVariable; continue; } + + VariableNameSize = NameSizeOfVariable(Variable); + UpdatingVariableNameSize = NameSizeOfVariable(UpdatingVariable); + + VariableNamePtr = GetVariableNamePtr (Variable); + UpdatingVariableNamePtr = GetVariableNamePtr (UpdatingVariable); if (CompareGuid (&Variable->VendorGuid, &UpdatingVariable->VendorGuid) && - NameSizeOfVariable(Variable) == NameSizeOfVariable (UpdatingVariable) && - CompareMem (GetVariableNamePtr (Variable), GetVariableNamePtr (UpdatingVariable), NameSizeOfVariable (Variable)) == 0 ) { + VariableNameSize == UpdatingVariableNameSize && + CompareMem (VariableNamePtr, UpdatingVariableNamePtr, VariableNameSize) == 0 ) { Variable = NextVariable; continue; } -- 2.39.2