winex11.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.

Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Aric Stewart 2016-06-02 13:29:24 -05:00 committed by Alexandre Julliard
parent 877a628aa6
commit a357a29a55
1 changed files with 10 additions and 6 deletions

View File

@ -217,11 +217,11 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, 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->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);
@ -304,6 +304,8 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len)
*(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;
@ -359,12 +361,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);
@ -446,6 +448,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;