Aric Stewart : winex11.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.
Alexandre Julliard
julliard at winehq.org
Fri Jun 3 10:03:44 CDT 2016
Module: wine
Branch: master
Commit: a357a29a5541d5c3c08ea484ae3d68d30af1faa9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a357a29a5541d5c3c08ea484ae3d68d30af1faa9
Author: Aric Stewart <aric at codeweavers.com>
Date: Thu Jun 2 13:29:24 2016 -0500
winex11.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.
Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winex11.drv/ime.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/winex11.drv/ime.c b/dlls/winex11.drv/ime.c
index ee622c1..06576dd 100644
--- a/dlls/winex11.drv/ime.c
+++ b/dlls/winex11.drv/ime.c
@@ -217,11 +217,11 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len)
{
needed_size += lpcs->dwCompReadAttrLen;
needed_size += lpcs->dwCompReadClauseLen;
- needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultReadClauseLen;
- needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultClauseLen;
- needed_size += lpcs->dwResultStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwResultStrLen * sizeof(WCHAR);
needed_size += lpcs->dwPrivateSize;
}
rc = ImmCreateIMCC(needed_size);
@@ -304,6 +304,8 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len)
*(DWORD*)(&newdata[current_offset]) = len;
current_offset += sizeof(DWORD);
}
+ else
+ new_one->dwCompClauseLen = 0;
/* CompStr */
new_one->dwCompStrLen = len;
@@ -359,12 +361,12 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len)
{
needed_size += lpcs->dwCompReadAttrLen;
needed_size += lpcs->dwCompReadClauseLen;
- needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwCompAttrLen;
needed_size += lpcs->dwCompClauseLen;
- needed_size += lpcs->dwCompStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwCompStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultReadClauseLen;
- needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD);
+ needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwPrivateSize;
}
rc = ImmCreateIMCC(needed_size);
@@ -446,6 +448,8 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len)
*(DWORD*)(&newdata[current_offset]) = len;
current_offset += sizeof(DWORD);
}
+ else
+ new_one->dwResultClauseLen = 0;
/* ResultStr */
new_one->dwResultStrLen = len;
More information about the wine-cvs
mailing list