Add judgement for TextModeMap

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4127 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2007-10-16 07:01:51 +00:00
parent af437b7c2e
commit de8fe2c269
1 changed files with 18 additions and 3 deletions

View File

@ -3460,11 +3460,26 @@ ConSplitterTextOutSetCursorPosition (
EFI_STATUS ReturnStatus;
UINTN MaxColumn;
UINTN MaxRow;
INT32 *TextOutModeMap;
INT32 ModeNumber;
INT32 CurrentMode;
Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
MaxColumn = Private->TextOutQueryData[Private->TextOutMode.Mode].Columns;
MaxRow = Private->TextOutQueryData[Private->TextOutMode.Mode].Rows;
TextOutModeMap = NULL;
ModeNumber = Private->TextOutMode.Mode;
//
// Get current MaxColumn and MaxRow from intersection map
//
if (Private->TextOutModeMap != NULL) {
TextOutModeMap = Private->TextOutModeMap + Private->TextOutListCount * ModeNumber;
CurrentMode = *TextOutModeMap;
} else {
CurrentMode = ModeNumber;
}
MaxColumn = Private->TextOutQueryData[CurrentMode].Columns;
MaxRow = Private->TextOutQueryData[CurrentMode].Rows;
if (Column >= MaxColumn || Row >= MaxRow) {
return EFI_UNSUPPORTED;