Revision: 18650
          http://sourceforge.net/p/edk2/code/18650
Author:   ydong10
Date:     2015-10-21 06:10:57 +0000 (Wed, 21 Oct 2015)
Log Message:
-----------
MdeModulePkg SetupBrowserDxe: Save global variable values before nest function 
called.

The SendForm function can be called nest in it. This function also uses some 
global variables. So we must save global variable values before it been called 
again.

Old implementation miss to save some global variables, this patch fixed it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
    trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h

Modified: trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c   2015-10-19 
21:39:46 UTC (rev 18649)
+++ trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c   2015-10-21 
06:10:57 UTC (rev 18650)
@@ -5568,6 +5568,10 @@
   Context->HiiHandle            = mCurrentHiiHandle;
   Context->FormId               = mCurrentFormId;
   CopyGuid (&Context->FormSetGuid, &mCurrentFormSetGuid);
+  Context->SystemLevelFormSet   = mSystemLevelFormSet;
+  Context->CurFakeQestId        = mCurFakeQestId;
+  Context->HiiPackageListUpdated = mHiiPackageListUpdated;
+  Context->FinishRetrieveCall   = mFinishRetrieveCall;
 
   //
   // Save the menu history data.
@@ -5625,6 +5629,10 @@
   mCurrentHiiHandle     = Context->HiiHandle;
   mCurrentFormId        = Context->FormId;
   CopyGuid (&mCurrentFormSetGuid, &Context->FormSetGuid);
+  mSystemLevelFormSet   = Context->SystemLevelFormSet;
+  mCurFakeQestId        = Context->CurFakeQestId;
+  mHiiPackageListUpdated = Context->HiiPackageListUpdated;
+  mFinishRetrieveCall   = Context->FinishRetrieveCall;
 
   //
   // Restore the menu history data.

Modified: trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h   2015-10-19 
21:39:46 UTC (rev 18649)
+++ trunk/edk2/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h   2015-10-21 
06:10:57 UTC (rev 18650)
@@ -538,7 +538,10 @@
   EFI_GUID                 FormSetGuid;
   EFI_FORM_ID              FormId;
   UI_MENU_SELECTION        *Selection;
-
+  FORM_BROWSER_FORMSET     *SystemLevelFormSet;
+  EFI_QUESTION_ID          CurFakeQestId;
+  BOOLEAN                  HiiPackageListUpdated;
+  BOOLEAN                  FinishRetrieveCall;
   LIST_ENTRY           FormHistoryList;
 } BROWSER_CONTEXT;
 
@@ -586,6 +589,9 @@
 extern CHAR16            *gEmptyString;
 
 extern UI_MENU_SELECTION  *gCurrentSelection;
+extern BOOLEAN            mHiiPackageListUpdated;
+extern UINT16             mCurFakeQestId;
+extern BOOLEAN            mFinishRetrieveCall;
 
 //
 // Global Procedure Defines


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to