[PATCH] dwrite/tests: Added a helper to initialize test text source
Nikolay Sivov
nsivov at codeweavers.com
Thu Sep 14 03:40:10 CDT 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/dwrite/tests/analyzer.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/dlls/dwrite/tests/analyzer.c b/dlls/dwrite/tests/analyzer.c
index 2e2a2e9c26..c5a0b0991f 100644
--- a/dlls/dwrite/tests/analyzer.c
+++ b/dlls/dwrite/tests/analyzer.c
@@ -367,9 +367,18 @@ struct testanalysissource
{
IDWriteTextAnalysisSource IDWriteTextAnalysisSource_iface;
const WCHAR *text;
+ UINT32 text_length;
DWRITE_READING_DIRECTION direction;
};
+static void init_textsource(struct testanalysissource *source, const WCHAR *text,
+ DWRITE_READING_DIRECTION direction)
+{
+ source->text = text;
+ source->text_length = lstrlenW(text);
+ source->direction = direction;
+};
+
static inline struct testanalysissource *impl_from_IDWriteTextAnalysisSource(IDWriteTextAnalysisSource *iface)
{
return CONTAINING_RECORD(iface, struct testanalysissource, IDWriteTextAnalysisSource_iface);
@@ -380,7 +389,7 @@ static HRESULT WINAPI analysissource_GetTextAtPosition(IDWriteTextAnalysisSource
{
struct testanalysissource *source = impl_from_IDWriteTextAnalysisSource(iface);
- if (position >= lstrlenW(source->text))
+ if (position >= source->text_length)
{
*text = NULL;
*text_len = 0;
@@ -388,7 +397,7 @@ static HRESULT WINAPI analysissource_GetTextAtPosition(IDWriteTextAnalysisSource
else
{
*text = source->text + position;
- *text_len = lstrlenW(source->text) - position;
+ *text_len = source->text_length - position;
}
return S_OK;
@@ -998,7 +1007,7 @@ static void get_script_analysis(const WCHAR *str, DWRITE_SCRIPT_ANALYSIS *sa)
IDWriteTextAnalyzer *analyzer;
HRESULT hr;
- analysissource.text = str;
+ init_textsource(&analysissource, str, DWRITE_READING_DIRECTION_LEFT_TO_RIGHT);
hr = IDWriteFactory_CreateTextAnalyzer(factory, &analyzer);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -1020,7 +1029,7 @@ static void test_AnalyzeScript(void)
while (*ptr->string)
{
- analysissource.text = ptr->string;
+ init_textsource(&analysissource, ptr->string, DWRITE_READING_DIRECTION_LEFT_TO_RIGHT);
init_expected_sa(expected_seq, ptr);
hr = IDWriteTextAnalyzer_AnalyzeScript(analyzer, &analysissource.IDWriteTextAnalysisSource_iface, 0,
@@ -1122,7 +1131,7 @@ static void test_AnalyzeLineBreakpoints(void)
hr = IDWriteFactory_CreateTextAnalyzer(factory, &analyzer);
ok(hr == S_OK, "got 0x%08x\n", hr);
- analysissource.text = emptyW;
+ init_textsource(&analysissource, emptyW, DWRITE_READING_DIRECTION_LEFT_TO_RIGHT);
hr = IDWriteTextAnalyzer_AnalyzeLineBreakpoints(analyzer, &analysissource.IDWriteTextAnalysisSource_iface, 0, 0,
&analysissink);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -1131,9 +1140,9 @@ static void test_AnalyzeLineBreakpoints(void)
{
UINT32 len;
- analysissource.text = ptr->text;
- len = lstrlenW(ptr->text);
+ init_textsource(&analysissource, ptr->text, DWRITE_READING_DIRECTION_LEFT_TO_RIGHT);
+ len = lstrlenW(ptr->text);
if (len > BREAKPOINT_COUNT) {
ok(0, "test %u: increase BREAKPOINT_COUNT to at least %u\n", i, len);
i++;
@@ -2414,10 +2423,9 @@ static void test_AnalyzeBidi(void)
{
UINT32 len;
- analysissource.text = ptr->text;
- len = lstrlenW(ptr->text);
- analysissource.direction = ptr->direction;
+ init_textsource(&analysissource, ptr->text, ptr->direction);
+ len = lstrlenW(ptr->text);
if (len > BIDI_LEVELS_COUNT) {
ok(0, "test %u: increase BIDI_LEVELS_COUNT to at least %u\n", i, len);
i++;
--
2.14.1
More information about the wine-patches
mailing list