Clinton Stimpson : usp10: Implement ScriptStringFree.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Dec 18 05:34:45 CST 2006
Module: wine
Branch: master
Commit: 857e330e77a7492b8c6830e897910ac332a62856
URL: http://source.winehq.org/git/wine.git/?a=commit;h=857e330e77a7492b8c6830e897910ac332a62856
Author: Clinton Stimpson <cjstimpson at utwire.net>
Date: Fri Dec 15 19:28:11 2006 -0700
usp10: Implement ScriptStringFree.
---
dlls/usp10/usp10.c | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c
index ea5339b..feedc5b 100644
--- a/dlls/usp10/usp10.c
+++ b/dlls/usp10/usp10.c
@@ -595,8 +595,39 @@ HRESULT WINAPI ScriptStringXtoCP(SCRIPT_
* ScriptStringFree (USP10.@)
*
*/
-HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa) {
- FIXME("(%p): stub\n",pssa);
+HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa)
+{
+ StringAnalysis* analysis;
+ BOOL invalid;
+ int i;
+ TRACE("(%p)\n",pssa);
+
+ if(!pssa)
+ return E_INVALIDARG;
+
+ analysis = *pssa;
+ if(!analysis)
+ return E_INVALIDARG;
+
+ invalid = analysis->invalid;
+
+ for(i=0; i<analysis->numItems; i++)
+ {
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].glyphs);
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].pwLogClust);
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].piAdvance);
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].psva);
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].pGoffset);
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs[i].abc);
+ }
+
+ HeapFree(GetProcessHeap(), 0, analysis->glyphs);
+ HeapFree(GetProcessHeap(), 0, analysis->pItem);
+ HeapFree(GetProcessHeap(), 0, analysis);
+
+ if(invalid)
+ return E_INVALIDARG;
+
return S_OK;
}
More information about the wine-cvs
mailing list