mirror of https://github.com/acidanthera/audk.git
Merged in the bug fixes from EDK I.
*** Press F9 in Uefi64 FrontPage shouldnot enter sub-menu ** [FT] Some UI error on multiple platforms on framework_20080811 ** [FT] UI test of How tall are you(Hex) on framework_20080811 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5767 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
217697afd2
commit
08e6463a72
|
@ -664,6 +664,7 @@ HiiConfigRoutingExtractConfig (
|
|||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Link;
|
||||
HII_DATABASE_RECORD *Database;
|
||||
UINT8 *DevicePathPkg;
|
||||
UINT8 *CurrentDevicePath;
|
||||
EFI_HANDLE DriverHandle;
|
||||
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
|
||||
|
@ -750,8 +751,9 @@ HiiConfigRoutingExtractConfig (
|
|||
Link = Link->ForwardLink
|
||||
) {
|
||||
Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
|
||||
CurrentDevicePath = Database->PackageList->DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
|
||||
if (CurrentDevicePath != NULL) {
|
||||
|
||||
if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {
|
||||
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
|
||||
if (CompareMem (
|
||||
DevicePath,
|
||||
CurrentDevicePath,
|
||||
|
@ -877,7 +879,6 @@ HiiConfigRoutingExportConfig (
|
|||
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
|
||||
EFI_STRING AccessProgress;
|
||||
EFI_STRING AccessResults;
|
||||
UINTN TmpSize;
|
||||
|
||||
//
|
||||
// For size reduction, please define PcdSupportFullConfigRoutingProtocol
|
||||
|
@ -943,9 +944,11 @@ HiiConfigRoutingExportConfig (
|
|||
// Generate a <ConfigRequest> with one <ConfigHdr> and zero <RequestElement>.
|
||||
// It means extract all possible configurations from this specific driver.
|
||||
//
|
||||
TmpSize = StrLen (L"GUID=&NAME=&PATH=");
|
||||
RequestSize = (TmpSize + 32 + StrLen (Storage->Name) * 4)
|
||||
* sizeof (CHAR16) + PathHdrSize;
|
||||
RequestSize = (StrLen (L"GUID=&NAME=&PATH=") + 32) * sizeof (CHAR16) + PathHdrSize;
|
||||
if (Storage->Name != NULL) {
|
||||
RequestSize += StrLen (Storage->Name) * 4 * sizeof (CHAR16);
|
||||
}
|
||||
|
||||
ConfigRequest = (EFI_STRING) AllocateZeroPool (RequestSize);
|
||||
if (ConfigRequest == NULL) {
|
||||
SafeFreePool (PathHdr);
|
||||
|
@ -976,10 +979,12 @@ HiiConfigRoutingExportConfig (
|
|||
StrnCpy (StringPtr, L"NAME=", StrLen (L"NAME="));
|
||||
StringPtr += StrLen (L"NAME=");
|
||||
|
||||
Length = (StrLen (Storage->Name) * 4 + 1) * sizeof (CHAR16);
|
||||
Status = UnicodeToConfigString (StringPtr, &Length, Storage->Name);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
StringPtr += StrLen (Storage->Name) * 4;
|
||||
if (Storage->Name != NULL) {
|
||||
Length = (StrLen (Storage->Name) * 4 + 1) * sizeof (CHAR16);
|
||||
Status = UnicodeToConfigString (StringPtr, &Length, Storage->Name);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
StringPtr += StrLen (Storage->Name) * 4;
|
||||
}
|
||||
|
||||
*StringPtr = L'&';
|
||||
StringPtr++;
|
||||
|
@ -1101,6 +1106,7 @@ HiiConfigRoutingRouteConfig (
|
|||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
LIST_ENTRY *Link;
|
||||
HII_DATABASE_RECORD *Database;
|
||||
UINT8 *DevicePathPkg;
|
||||
UINT8 *CurrentDevicePath;
|
||||
EFI_HANDLE DriverHandle;
|
||||
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
|
||||
|
@ -1180,8 +1186,9 @@ HiiConfigRoutingRouteConfig (
|
|||
Link = Link->ForwardLink
|
||||
) {
|
||||
Database = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);
|
||||
CurrentDevicePath = Database->PackageList->DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
|
||||
if (CurrentDevicePath != NULL) {
|
||||
|
||||
if ((DevicePathPkg = Database->PackageList->DevicePathPkg) != NULL) {
|
||||
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);
|
||||
if (CompareMem (
|
||||
DevicePath,
|
||||
CurrentDevicePath,
|
||||
|
@ -1355,7 +1362,19 @@ HiiBlockToConfig (
|
|||
Status = EFI_INVALID_PARAMETER;
|
||||
goto Exit;
|
||||
}
|
||||
while (*StringPtr++ != L'&');
|
||||
|
||||
while (*StringPtr != L'&' && *StringPtr != 0) {
|
||||
StringPtr++;
|
||||
}
|
||||
if (*StringPtr == 0) {
|
||||
*Progress = StringPtr;
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
goto Exit;
|
||||
}
|
||||
//
|
||||
// Skip '&'
|
||||
//
|
||||
StringPtr++;
|
||||
|
||||
//
|
||||
// Copy <ConfigHdr> and an additional '&' to <ConfigResp>
|
||||
|
@ -1604,7 +1623,19 @@ HiiConfigToBlock (
|
|||
Status = EFI_INVALID_PARAMETER;
|
||||
goto Exit;
|
||||
}
|
||||
while (*StringPtr++ != L'&');
|
||||
|
||||
while (*StringPtr != L'&' && *StringPtr != 0) {
|
||||
StringPtr++;
|
||||
}
|
||||
if (*StringPtr == 0) {
|
||||
*Progress = StringPtr;
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
goto Exit;
|
||||
}
|
||||
//
|
||||
// Skip '&'
|
||||
//
|
||||
StringPtr++;
|
||||
|
||||
//
|
||||
// Parse each <ConfigElement> if exists
|
||||
|
|
|
@ -1730,7 +1730,6 @@ HiiStringToImage (
|
|||
if (LineHeight < Cell[Index].Height) {
|
||||
LineHeight = (UINTN) Cell[Index].Height;
|
||||
}
|
||||
BaseLineOffset += (UINTN) Cell[Index].OffsetY;
|
||||
|
||||
if ((Flags & EFI_HII_IGNORE_LINE_BREAK) == 0 &&
|
||||
(Flags & EFI_HII_OUT_FLAG_WRAP) == 0 &&
|
||||
|
@ -1799,7 +1798,7 @@ HiiStringToImage (
|
|||
if (Index > 0) {
|
||||
RowInfo[RowIndex].EndIndex = Index - 1;
|
||||
RowInfo[RowIndex].LineWidth = LineWidth - Cell[Index].AdvanceX;
|
||||
RowInfo[RowIndex].BaselineOffset = BaseLineOffset - Cell[Index].OffsetY;
|
||||
RowInfo[RowIndex].BaselineOffset = BaseLineOffset;
|
||||
if (LineHeight > Cell[Index - 1].Height) {
|
||||
LineHeight = Cell[Index - 1].Height;
|
||||
}
|
||||
|
@ -2497,10 +2496,10 @@ HiiGetFontInfo (
|
|||
FontInfo->FontStyle = InfoOut.FontInfo.FontStyle;
|
||||
|
||||
if (IsFontInfoExisted (Private, FontInfo, &InfoOut.FontInfoMask, LocalFontHandle, &GlobalFont)) {
|
||||
//
|
||||
// Test to guarantee all characters are available in the found font.
|
||||
//
|
||||
if (String != NULL) {
|
||||
//
|
||||
// Test to guarantee all characters are available in the found font.
|
||||
//
|
||||
StringIn = String;
|
||||
while (*StringIn != 0) {
|
||||
Status = FindGlyphBlock (GlobalFont->FontPackage, *StringIn, NULL, NULL, NULL);
|
||||
|
@ -2510,29 +2509,27 @@ HiiGetFontInfo (
|
|||
}
|
||||
StringIn++;
|
||||
}
|
||||
|
||||
//
|
||||
// Write to output parameter
|
||||
//
|
||||
if (StringInfoOut != NULL) {
|
||||
StringInfoOutLen = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (EFI_FONT_INFO) + GlobalFont->FontInfoSize;
|
||||
*StringInfoOut = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (StringInfoOutLen);
|
||||
if (*StringInfoOut == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
LocalFontHandle = NULL;
|
||||
goto Exit;
|
||||
}
|
||||
CopyMem (*StringInfoOut, &InfoOut, sizeof (EFI_FONT_DISPLAY_INFO));
|
||||
CopyMem (&(*StringInfoOut)->FontInfo, GlobalFont->FontInfo, GlobalFont->FontInfoSize);
|
||||
}
|
||||
LocalFontHandle = GlobalFont->Entry.ForwardLink;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
goto Exit;
|
||||
}
|
||||
} else {
|
||||
LocalFontHandle = NULL;
|
||||
}
|
||||
//
|
||||
// Write to output parameter
|
||||
//
|
||||
if (StringInfoOut != NULL) {
|
||||
StringInfoOutLen = sizeof (EFI_FONT_DISPLAY_INFO) - sizeof (EFI_FONT_INFO) + GlobalFont->FontInfoSize;
|
||||
*StringInfoOut = (EFI_FONT_DISPLAY_INFO *) AllocateZeroPool (StringInfoOutLen);
|
||||
if (*StringInfoOut == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
LocalFontHandle = NULL;
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
CopyMem (*StringInfoOut, &InfoOut, sizeof (EFI_FONT_DISPLAY_INFO));
|
||||
CopyMem (&(*StringInfoOut)->FontInfo, GlobalFont->FontInfo, GlobalFont->FontInfoSize);
|
||||
}
|
||||
|
||||
LocalFontHandle = GlobalFont->Entry.ForwardLink;
|
||||
Status = EFI_SUCCESS;
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
Status = EFI_NOT_FOUND;
|
||||
|
||||
|
|
Loading…
Reference in New Issue