]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
Change EFI_OPTIONAL_POINTER to EFI_OPTIONAL_PTR
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / Variable.c
index b5741785b25de990c0d18c9ed6d7074e7ddd9415..694de8da599d5a035dc4650c540e308f90112339 100644 (file)
@@ -21,6 +21,25 @@ VARIABLE_MODULE_GLOBAL  *mVariableModuleGlobal;
 EFI_EVENT   mVirtualAddressChangeEvent = NULL;\r
 EFI_HANDLE  mHandle = NULL;\r
 \r
+//\r
+// The current Hii implementation accesses this variable a larg # of times on every boot.\r
+// Other common variables are only accessed a single time. This is why this cache algorithm\r
+// only targets a single variable. Probably to get an performance improvement out of\r
+// a Cache you would need a cache that improves the search performance for a variable.\r
+//\r
+VARIABLE_CACHE_ENTRY mVariableCache[] = {\r
+  {\r
+    &gEfiGlobalVariableGuid,\r
+    L"Lang",\r
+    0x00000000,\r
+    0x00,\r
+    NULL\r
+  }\r
+};\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY *gVariableInfo = NULL;\r
+\r
+\r
 \r
 //\r
 // This is a temperary function which will be removed\r
@@ -53,9 +72,6 @@ ReleaseLockOnlyAtBootTime (
 }\r
 \r
 \r
-GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY *gVariableInfo = NULL;\r
-\r
-\r
 /**\r
   Routine used to track statistical information about variable usage. \r
   The data is stored in the EFI system table so it can be accessed later.\r
@@ -606,12 +622,16 @@ Returns:
   UINT8                 *ValidBuffer;\r
   UINTN                 MaximumBufferSize;\r
   UINTN                 VariableSize;\r
+  UINTN                 VariableNameSize;\r
+  UINTN                 UpdatingVariableNameSize;\r
   UINTN                 NameSize;\r
   UINT8                 *CurrPtr;\r
   VOID                  *Point0;\r
   VOID                  *Point1;\r
   BOOLEAN               FoundAdded;\r
   EFI_STATUS            Status;\r
+  CHAR16                *VariableNamePtr;\r
+  CHAR16                *UpdatingVariableNamePtr;\r
 \r
   VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) VariableBase);\r
 \r
@@ -667,9 +687,15 @@ Returns:
           Variable = NextVariable;\r
           continue;\r
         }\r
+\r
+        VariableNameSize         = NameSizeOfVariable(Variable);\r
+        UpdatingVariableNameSize = NameSizeOfVariable(UpdatingVariable);\r
+\r
+        VariableNamePtr         = GetVariableNamePtr (Variable);\r
+        UpdatingVariableNamePtr = GetVariableNamePtr (UpdatingVariable);\r
         if (CompareGuid (&Variable->VendorGuid, &UpdatingVariable->VendorGuid)    &&\r
-            NameSizeOfVariable(Variable) == NameSizeOfVariable (UpdatingVariable) &&\r
-            CompareMem (GetVariableNamePtr (Variable), GetVariableNamePtr (UpdatingVariable), NameSizeOfVariable (Variable)) == 0 ) {\r
+            VariableNameSize == UpdatingVariableNameSize &&\r
+            CompareMem (VariableNamePtr, UpdatingVariableNamePtr, VariableNameSize) == 0 ) {\r
           Variable = NextVariable;\r
           continue;\r
         }\r
@@ -764,23 +790,6 @@ Returns:
 }\r
 \r
 \r
-//\r
-// The current Hii implementation accesses this variable a larg # of times on every boot.\r
-// Other common variables are only accessed a single time. This is why this cache algorithm\r
-// only targets a single variable. Probably to get an performance improvement out of\r
-// a Cache you would need a cache that improves the search performance for a variable.\r
-//\r
-VARIABLE_CACHE_ENTRY mVariableCache[] = {\r
-  {\r
-    &gEfiGlobalVariableGuid,\r
-    L"Lang",\r
-    0x00000000,\r
-    0x00,\r
-    NULL\r
-  }\r
-};\r
-\r
-\r
 /**\r
   Update the Cache with Variable information. These are the same \r
   arguments as the EFI Variable services.\r