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>
This commit is contained in:
Aric Stewart 2016-06-02 13:29:46 -05:00 committed by Alexandre Julliard
parent a357a29a55
commit 73bb165ba5
1 changed files with 10 additions and 6 deletions

View File

@ -178,11 +178,11 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len, DWORD *flags)
{ {
needed_size += lpcs->dwCompReadAttrLen; needed_size += lpcs->dwCompReadAttrLen;
needed_size += lpcs->dwCompReadClauseLen; needed_size += lpcs->dwCompReadClauseLen;
needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD); needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultReadClauseLen; needed_size += lpcs->dwResultReadClauseLen;
needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD); needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultClauseLen; needed_size += lpcs->dwResultClauseLen;
needed_size += lpcs->dwResultStrLen * sizeof(DWORD); needed_size += lpcs->dwResultStrLen * sizeof(WCHAR);
needed_size += lpcs->dwPrivateSize; needed_size += lpcs->dwPrivateSize;
} }
rc = ImmCreateIMCC(needed_size); rc = ImmCreateIMCC(needed_size);
@ -271,6 +271,8 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len, DWORD *flags)
*(DWORD*)&newdata[current_offset] = len; *(DWORD*)&newdata[current_offset] = len;
current_offset += sizeof(DWORD); current_offset += sizeof(DWORD);
} }
else
new_one->dwCompClauseLen = 0;
/* CompStr */ /* CompStr */
new_one->dwCompStrLen = len; new_one->dwCompStrLen = len;
@ -324,12 +326,12 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len)
{ {
needed_size += lpcs->dwCompReadAttrLen; needed_size += lpcs->dwCompReadAttrLen;
needed_size += lpcs->dwCompReadClauseLen; needed_size += lpcs->dwCompReadClauseLen;
needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD); needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwCompAttrLen; needed_size += lpcs->dwCompAttrLen;
needed_size += lpcs->dwCompClauseLen; needed_size += lpcs->dwCompClauseLen;
needed_size += lpcs->dwCompStrLen * sizeof(DWORD); needed_size += lpcs->dwCompStrLen * sizeof(WCHAR);
needed_size += lpcs->dwResultReadClauseLen; needed_size += lpcs->dwResultReadClauseLen;
needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD); needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR);
needed_size += lpcs->dwPrivateSize; needed_size += lpcs->dwPrivateSize;
} }
rc = ImmCreateIMCC(needed_size); rc = ImmCreateIMCC(needed_size);
@ -411,6 +413,8 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len)
*(DWORD*)&newdata[current_offset] = len; *(DWORD*)&newdata[current_offset] = len;
current_offset += sizeof(DWORD); current_offset += sizeof(DWORD);
} }
else
new_one->dwResultClauseLen = 0;
/* ResultStr */ /* ResultStr */
new_one->dwResultStrLen = len; new_one->dwResultStrLen = len;