1) Replace immediate constant with MACRO.
2) Add in ASSERT for NULL before dereferencing pointers and after memory allocation.
3) Add a return statement in ProcessOptions to handle the mismatch between the value stored and the opcode for one-of-option in orderedlist opcode. This case occurs when the one-of-optoin entry in OrderedList get deleted.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7320 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2009-01-20 12:55:02 +00:00
parent 7bfc66a284
commit 40a06b0ca8
4 changed files with 30 additions and 5 deletions

View File

@@ -188,6 +188,8 @@ DisplayPageFrame (
CHAR16 *StrFrontPageBanner;
UINTN Row;
EFI_SCREEN_DESCRIPTOR LocalScreen;
UINTN RowIdx;
UINTN ColumnIdx;
ZeroMem (&LocalScreen, sizeof (EFI_SCREEN_DESCRIPTOR));
gST->ConOut->QueryMode (gST->ConOut, gST->ConOut->Mode->Mode, &LocalScreen.RightColumn, &LocalScreen.BottomRow);
@@ -229,9 +231,15 @@ DisplayPageFrame (
Alignment < BANNER_COLUMNS + (UINT8) LocalScreen.LeftColumn;
Alignment++
) {
if (BannerData->Banner[Line - (UINT8) LocalScreen.TopRow][Alignment - (UINT8) LocalScreen.LeftColumn] != 0x0000) {
RowIdx = Line - (UINT8) LocalScreen.TopRow;
ColumnIdx = Alignment - (UINT8) LocalScreen.LeftColumn;
ASSERT (RowIdx < BANNER_HEIGHT);
ASSERT (ColumnIdx < BANNER_COLUMNS);
if (BannerData->Banner[RowIdx][ColumnIdx] != 0x0000) {
StrFrontPageBanner = GetToken (
BannerData->Banner[Line - (UINT8) LocalScreen.TopRow][Alignment - (UINT8) LocalScreen.LeftColumn],
BannerData->Banner[RowIdx][ColumnIdx],
FrontPageHandle
);
} else {