Revision: 18053
http://sourceforge.net/p/edk2/code/18053
Author: jljusten
Date: 2015-07-26 08:03:44 +0000 (Sun, 26 Jul 2015)
Log Message:
-----------
MdeModulePkg: Check the case caused by mismatch
When mismatch happens,there exists one case that exit current
form and display last form.Assert code don't cover this case.
Now add check to handle this situation.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <[email protected]>
Reviewed-by: Liming Gao <[email protected]>
Signed-off-by: Laszlo Ersek <[email protected]>
Modified Paths:
--------------
trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
Modified: trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
2015-07-26 08:03:40 UTC (rev 18052)
+++ trunk/edk2/MdeModulePkg/Universal/DisplayEngineDxe/FormDisplay.c
2015-07-26 08:03:44 UTC (rev 18053)
@@ -1782,14 +1782,15 @@
TopRow = gStatementDimensions.TopRow + SCROLL_ARROW_HEIGHT;
BottomRow = gStatementDimensions.BottomRow - SCROLL_ARROW_HEIGHT;
-
- if (gMisMatch) {
+ //
+ // When option mismatch happens,there exist two cases,one is reenter the
form, just like the if case below,
+ // and the other is exit current form and enter last form, it can be covered
by the else case.
+ //
+ if (gMisMatch && gFormData->HiiHandle == gHighligthMenuInfo.HiiHandle &&
gFormData->FormId == gHighligthMenuInfo.FormId) {
//
// Reenter caused by option mismatch or auto exit caused by refresh
form(refresh interval/guid),
// base on the record highlight info to find the highlight menu.
//
- ASSERT (gFormData->HiiHandle == gHighligthMenuInfo.HiiHandle &&
- gFormData->FormId == gHighligthMenuInfo.FormId);
*HighlightMenu = FindHighLightMenuOption(NULL);
if (*HighlightMenu != NULL) {
@@ -1840,7 +1841,6 @@
*SkipValue = 0;
}
- gMisMatch = FALSE;
} else if (FormData->HighLightedStatement != NULL) {
if (IsSavedHighlightStatement (FormData->HighLightedStatement)) {
//
@@ -1914,6 +1914,8 @@
*SkipValue = 0;
}
+ gMisMatch = FALSE;
+
//
// First enter to show the menu, update highlight info.
//
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits