From: Jeff Smith Subject: [PATCH] xmllite: Avoid extra read from stream when identifying comment node. Message-Id: <20191119014024.415408-1-whydoubt@gmail.com> Date: Mon, 18 Nov 2019 19:40:24 -0600 Signed-off-by: Jeff Smith --- dlls/xmllite/reader.c | 5 +++-- dlls/xmllite/tests/reader.c | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c index eddc4d8eec..5299871136 100644 --- a/dlls/xmllite/reader.c +++ b/dlls/xmllite/reader.c @@ -1459,7 +1459,7 @@ static HRESULT reader_parse_comment(xmlreader *reader) reader_init_strvalue(start, reader_get_cur(reader)-start, &value); TRACE("%s\n", debug_strval(reader, &value)); - /* skip rest of markup '->' */ + /* skip rest of markup '-->' */ reader_skipn(reader, 3); reader_set_strvalue(reader, StringValue_Value, &value); @@ -1472,8 +1472,9 @@ static HRESULT reader_parse_comment(xmlreader *reader) } } - reader_skipn(reader, 1); ptr++; + if (*ptr) + reader_skipn(reader, 1); } return S_OK; diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c index 41adad1598..0bbdabbb96 100644 --- a/dlls/xmllite/tests/reader.c +++ b/dlls/xmllite/tests/reader.c @@ -1579,7 +1579,6 @@ static void test_read_pending(void) ok(hr == S_OK || broken(hr == E_PENDING), "got 0x%08x\n", hr); /* newer versions are happy when it's enough data to detect node type, older versions keep reading until it fails to read more */ -todo_wine ok(stream_readcall == 1 || broken(stream_readcall > 1), "got %d\n", stream_readcall); ok(type == XmlNodeType_Comment || broken(type == XmlNodeType_None), "got %d\n", type); -- 2.23.0