- 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 );