From 1ad1474be5705528a081295e461d3a39931ae96c Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Tue, 23 Aug 2011 12:55:49 -0500 Subject: [PATCH] usp10: Always use a SCRIPT_STATE and SCRIPT_CONTROL structure in ScriptStringAnalyse. --- dlls/usp10/usp10.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index 50de8bfa3fd..e6933bc90de 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -907,6 +907,8 @@ HRESULT WINAPI ScriptStringAnalyse(HDC hdc, const void *pString, int cString, { HRESULT hr = E_OUTOFMEMORY; StringAnalysis *analysis = NULL; + SCRIPT_CONTROL sControl; + SCRIPT_STATE sState; int i, num_items = 255; TRACE("(%p,%p,%d,%d,%d,0x%x,%d,%p,%p,%p,%p,%p,%p)\n", @@ -928,7 +930,17 @@ HRESULT WINAPI ScriptStringAnalyse(HDC hdc, const void *pString, int cString, analysis->clip_len = cString; analysis->hdc = hdc; - hr = ScriptItemize(pString, cString, num_items, psControl, psState, analysis->pItem, + if (psState) + sState = *psState; + else + memset(&sState, 0, sizeof(SCRIPT_STATE)); + + if (psControl) + sControl = *psControl; + else + memset(&sControl, 0, sizeof(SCRIPT_CONTROL)); + + hr = ScriptItemize(pString, cString, num_items, &sControl, &sState, analysis->pItem, &analysis->numItems); while (hr == E_OUTOFMEMORY)