From b37f7e81d29b36a667f820065e036ffb986b9176 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Mon, 15 May 2017 09:59:19 +0200 Subject: [PATCH] webservices: Move the reader to the next node in WsCopyNode. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- dlls/webservices/tests/writer.c | 5 +++++ dlls/webservices/writer.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c index 1d1ed047069..531976999cc 100644 --- a/dlls/webservices/tests/writer.c +++ b/dlls/webservices/tests/writer.c @@ -1940,6 +1940,7 @@ static void test_WsCopyNode(void) { WS_XML_STRING localname = {1, (BYTE *)"t"}, localname2 = {1, (BYTE *)"u"}, ns = {0, NULL}; WS_XML_NODE_POSITION pos, pos2; + const WS_XML_NODE *node; WS_XML_WRITER *writer; WS_XML_READER *reader; WS_XML_BUFFER *buffer; @@ -1998,6 +1999,10 @@ static void test_WsCopyNode(void) ok( pos2.buffer == pos.buffer, "wrong buffer\n" ); ok( pos2.node == pos.node, "wrong node\n" ); + hr = WsGetReaderNode( reader, &node, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( node->nodeType == WS_XML_NODE_TYPE_EOF, "got %u\n", node->nodeType ); + WsFreeReader( reader ); WsFreeWriter( writer ); WsFreeHeap( heap ); diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c index 81e21e54f8e..74b6efde128 100644 --- a/dlls/webservices/writer.c +++ b/dlls/webservices/writer.c @@ -3427,6 +3427,8 @@ HRESULT WINAPI WsCopyNode( WS_XML_WRITER *handle, WS_XML_READER *reader, WS_ERRO if ((hr = write_tree( writer )) != S_OK) goto done; writer->current = current; + WsMoveReader( reader, WS_MOVE_TO_NEXT_NODE, NULL, NULL ); + done: LeaveCriticalSection( &writer->cs ); return hr; -- 2.11.4.GIT