Aric Stewart : winemac.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: 73bb165ba5b7611689034b968405d92fae65a1fd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=73bb165ba5b7611689034b968405d92fae65a1fd
Author: Aric Stewart <aric at codeweavers.com>
Date: Thu Jun 2 13:29:46 2016 -0500
winemac.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.
Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Ken Thomases <ken at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winemac.drv/ime.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/winemac.drv/ime.c b/dlls/winemac.drv/ime.c
index 295c6cc..7681e8e 100644
--- a/dlls/winemac.drv/ime.c
+++ b/dlls/winemac.drv/ime.c
@@ -178,11 +178,11 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len, DWORD *flags)
{
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);
@@ -271,6 +271,8 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len, DWORD *flags)
*(DWORD*)&newdata[current_offset] = len;
current_offset += sizeof(DWORD);
}
+ else
+ new_one->dwCompClauseLen = 0;
/* CompStr */
new_one->dwCompStrLen = len;
@@ -324,12 +326,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);
@@ -411,6 +413,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