]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Restore EditBuffer before call the callback function to avoid get error data.
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 30 Aug 2012 10:48:17 +0000 (10:48 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 30 Aug 2012 10:48:17 +0000 (10:48 +0000)
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13692 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/SetupBrowserDxe/Setup.c

index c471a232a0e394f450e90a45d2263ff84149f588..a15cc828cb998440670d6bbf9c0ce5879e485c94 100644 (file)
@@ -2298,31 +2298,20 @@ DiscardForm (
         continue;\r
       }\r
 \r
-      //\r
-      // Call callback with Changed type to inform the driver.\r
-      //\r
-      SendDiscardInfoToDriver (FormSet, Form);\r
-\r
       //\r
       // Prepare <ConfigResp>\r
       //\r
       SynchronizeStorageForForm(FormSet, ConfigInfo, FALSE);\r
-    }\r
-\r
-    Form->NvUpdateRequired = FALSE;\r
-  } else if (SettingScope == FormSetLevel && IsNvUpdateRequired(FormSet)) {\r
 \r
-    Link = GetFirstNode (&FormSet->FormListHead);\r
-    while (!IsNull (&FormSet->FormListHead, Link)) {\r
-      Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
-      Link = GetNextNode (&FormSet->FormListHead, Link);\r
-      \r
       //\r
       // Call callback with Changed type to inform the driver.\r
       //\r
       SendDiscardInfoToDriver (FormSet, Form);\r
     }\r
 \r
+    Form->NvUpdateRequired = FALSE;\r
+  } else if (SettingScope == FormSetLevel && IsNvUpdateRequired(FormSet)) {\r
+\r
     //\r
     // Discard Buffer storage or Name/Value storage\r
     //\r
@@ -2345,6 +2334,17 @@ DiscardForm (
       SynchronizeStorage(Storage, FALSE);\r
     }\r
 \r
+    Link = GetFirstNode (&FormSet->FormListHead);\r
+    while (!IsNull (&FormSet->FormListHead, Link)) {\r
+      Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
+      Link = GetNextNode (&FormSet->FormListHead, Link);\r
+      \r
+      //\r
+      // Call callback with Changed type to inform the driver.\r
+      //\r
+      SendDiscardInfoToDriver (FormSet, Form);\r
+    }\r
+\r
     UpdateNvInfoInForm (FormSet, FALSE);   \r
   } else if (SettingScope == SystemLevel) {\r
     //\r