From: erictian Date: Thu, 11 Feb 2010 02:47:10 +0000 (+0000) Subject: 1. free those inserted NsKeyNode resource when releasing SetKeyBoardLayout event. X-Git-Tag: edk2-stable201903~16358 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=ea0210023728e57519584432ac5cb6c11869b93d 1. free those inserted NsKeyNode resource when releasing SetKeyBoardLayout event. 2. cleanup HiiDataBaseDxe to directly use gEfiHiiKeyBoardLayoutGuid which is used as the guid of event group. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9978 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c b/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c index 0716830989..eb9bbd971f 100644 --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/EfiKey.c @@ -395,11 +395,9 @@ ErrorExit: gBS->CloseEvent (UsbKeyboardDevice->SimpleInputEx.WaitForKeyEx); } if (UsbKeyboardDevice->KeyboardLayoutEvent != NULL) { + ReleaseKeyboardLayoutResources (UsbKeyboardDevice); gBS->CloseEvent (UsbKeyboardDevice->KeyboardLayoutEvent); } - if (UsbKeyboardDevice->KeyConvertionTable != NULL) { - FreePool (UsbKeyboardDevice->KeyConvertionTable); - } FreePool (UsbKeyboardDevice); UsbKeyboardDevice = NULL; } diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf index e213cc7d85..9b38c9cf64 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf @@ -72,7 +72,12 @@ [Guids] gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable:"PlatformLang" - + ## + # Event registered to EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID group, + # which will be triggered by EFI_HII_DATABASE_PROTOCOL.SetKeyboardLayout(). + ## + gEfiHiiKeyBoardLayoutGuid ## SOMETIME_CONSUMES ## Event + [Depex] TRUE diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c index 85202b2b63..04801fc334 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c @@ -20,7 +20,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. // Global variables // EFI_EVENT gHiiKeyboardLayoutChanged; -EFI_GUID gHiiSetKbdLayoutEventGuid = EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID; HII_DATABASE_PRIVATE_DATA mPrivate = { HII_DATABASE_PRIVATE_DATA_SIGNATURE, @@ -168,7 +167,7 @@ InitializeHiiDatabase ( TPL_NOTIFY, KeyboardLayoutChangeNullEvent, NULL, - &gHiiSetKbdLayoutEventGuid, + &gEfiHiiKeyBoardLayoutGuid, &gHiiKeyboardLayoutChanged ); if (EFI_ERROR (Status)) {