Nikolay Sivov : dwrite/tests: Get rid of global script analysis variable.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 17 11:19:37 CDT 2016


Module: wine
Branch: master
Commit: a935716f1d2270553b5b8dea775fd042fd826ec3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a935716f1d2270553b5b8dea775fd042fd826ec3

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon May 16 20:51:37 2016 +0300

dwrite/tests: Get rid of global script analysis variable.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dwrite/tests/layout.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index 0ed80e3..13d27da 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -32,7 +32,16 @@
 static const WCHAR tahomaW[] = {'T','a','h','o','m','a',0};
 static const WCHAR enusW[] = {'e','n','-','u','s',0};
 
-static DWRITE_SCRIPT_ANALYSIS g_sa;
+struct testanalysissink
+{
+    IDWriteTextAnalysisSink IDWriteTextAnalysisSink_iface;
+    DWRITE_SCRIPT_ANALYSIS sa; /* last analysis, with SetScriptAnalysis() */
+};
+
+static inline struct testanalysissink *impl_from_IDWriteTextAnalysisSink(IDWriteTextAnalysisSink *iface)
+{
+    return CONTAINING_RECORD(iface, struct testanalysissink, IDWriteTextAnalysisSink_iface);
+}
 
 /* test IDWriteTextAnalysisSink */
 static HRESULT WINAPI analysissink_QueryInterface(IDWriteTextAnalysisSink *iface, REFIID riid, void **obj)
@@ -60,7 +69,8 @@ static ULONG WINAPI analysissink_Release(IDWriteTextAnalysisSink *iface)
 static HRESULT WINAPI analysissink_SetScriptAnalysis(IDWriteTextAnalysisSink *iface,
     UINT32 position, UINT32 length, DWRITE_SCRIPT_ANALYSIS const* sa)
 {
-    g_sa = *sa;
+    struct testanalysissink *sink = impl_from_IDWriteTextAnalysisSink(iface);
+    sink->sa = *sa;
     return S_OK;
 }
 
@@ -95,7 +105,10 @@ static IDWriteTextAnalysisSinkVtbl analysissinkvtbl = {
     analysissink_SetNumberSubstitution
 };
 
-static IDWriteTextAnalysisSink analysissink = { &analysissinkvtbl };
+static struct testanalysissink analysissink = {
+    { &analysissinkvtbl },
+    { 0 }
+};
 
 /* test IDWriteTextAnalysisSource */
 static HRESULT WINAPI analysissource_QueryInterface(IDWriteTextAnalysisSource *iface,
@@ -202,10 +215,10 @@ static void get_script_analysis(const WCHAR *str, UINT32 len, DWRITE_SCRIPT_ANAL
     hr = IDWriteFactory_CreateTextAnalyzer(factory, &analyzer);
     ok(hr == S_OK, "got 0x%08x\n", hr);
 
-    hr = IDWriteTextAnalyzer_AnalyzeScript(analyzer, &analysissource, 0, len, &analysissink);
+    hr = IDWriteTextAnalyzer_AnalyzeScript(analyzer, &analysissource, 0, len, &analysissink.IDWriteTextAnalysisSink_iface);
     ok(hr == S_OK, "got 0x%08x\n", hr);
 
-    *sa = g_sa;
+    *sa = analysissink.sa;
     IDWriteFactory_Release(factory);
 }
 




More information about the wine-cvs mailing list