Module: wine Branch: master Commit: 73bb165ba5b7611689034b968405d92fae65a1fd URL: http://source.winehq.org/git/wine.git/?a=commit;h=73bb165ba5b7611689034b9684...
Author: Aric Stewart aric@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@codeweavers.com Signed-off-by: Ken Thomases ken@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;