Revision: 18803
          http://sourceforge.net/p/edk2/code/18803
Author:   vanjeff
Date:     2015-11-16 08:02:03 +0000 (Mon, 16 Nov 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.

(Sync patch r18650 from main trunk.)

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

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18650

Modified Paths:
--------------
    branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
    branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h

Modified: branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
===================================================================
--- branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c     
2015-11-16 07:18:36 UTC (rev 18802)
+++ branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.c     
2015-11-16 08:02:03 UTC (rev 18803)
@@ -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: branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
===================================================================
--- branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h     
2015-11-16 07:18:36 UTC (rev 18802)
+++ branches/UDK2015/MdeModulePkg/Universal/SetupBrowserDxe/Setup.h     
2015-11-16 08:02:03 UTC (rev 18803)
@@ -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


------------------------------------------------------------------------------
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to