- Freed the path string for the keyboard dll. - Freed some strings in all cases. Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c _____
Modified: trunk/reactos/subsys/win32k/ntuser/keyboard.c --- trunk/reactos/subsys/win32k/ntuser/keyboard.c 2005-09-13 18:04:00 UTC (rev 17834) +++ trunk/reactos/subsys/win32k/ntuser/keyboard.c 2005-09-13 18:08:18 UTC (rev 17835) @@ -616,8 +616,9 @@
RtlInitUnicodeString(&LayoutValueName,L"Layout File");
Status = ReadRegistryValue(&LayoutKeyName,&LayoutValueName,&LayoutFile); - RtlInitUnicodeString(&FullLayoutPath,SYSTEMROOT_DIR);
+ RtlFreeUnicodeString(&LayoutKeyName); + if( !NT_SUCCESS(Status) ) { DPRINT1("Got default locale but not layout file. (%08lx)\n", @@ -627,8 +628,8 @@ { DPRINT("Read registry and got %wZ\n", &LayoutFile);
- RtlFreeUnicodeString(&LayoutKeyName);
+ RtlInitUnicodeString(&FullLayoutPath,SYSTEMROOT_DIR); AppendUnicodeString(&FullLayoutPath,&LayoutFile,FALSE);
DPRINT("Loading Keyboard DLL %wZ\n", &FullLayoutPath); @@ -647,7 +648,7 @@ return; } memcpy(KeyboardLayoutWSTR,FullLayoutPath.Buffer, - FullLayoutPath.Length + sizeof(WCHAR)); + FullLayoutPath.Length); KeyboardLayoutWSTR[FullLayoutPath.Length / sizeof(WCHAR)] = 0;
kbModule = EngLoadImage(KeyboardLayoutWSTR); @@ -656,6 +657,7 @@ if( !kbModule ) DPRINT1( "Load Keyboard Layout: No %wZ\n", &FullLayoutPath );
+ ExFreePool(KeyboardLayoutWSTR); RtlFreeUnicodeString(&FullLayoutPath); } } @@ -694,7 +696,7 @@ #undef XX_STATUS }
-PKBDTABLES W32kGetDefaultKeyLayout() +PKBDTABLES W32kGetDefaultKeyLayout(VOID) { PKBDTABLES pkKeyboardLayout = 0; InitKbdLayout( (PVOID) &pkKeyboardLayout );