Hans Leidekker : webservices: Flush the writer in WsWriteText.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 17 11:19:38 CDT 2016
Module: wine
Branch: master
Commit: f4b336379063399b08d5b56d8aa18dacc914e589
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f4b336379063399b08d5b56d8aa18dacc914e589
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue May 17 10:51:56 2016 +0200
webservices: Flush the writer in WsWriteText.
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/webservices/writer.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index 35be982..a6ecf24 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -861,6 +861,13 @@ HRESULT WINAPI WsWriteEndCData( WS_XML_WRITER *handle, WS_ERROR *error )
return S_OK;
}
+/* flush current start element if necessary */
+static HRESULT write_flush( struct writer *writer )
+{
+ if (writer->state == WRITER_STATE_STARTELEMENT) return write_endstartelement( writer );
+ return S_OK;
+}
+
static HRESULT write_add_element_node( struct writer *writer, const WS_XML_STRING *prefix,
const WS_XML_STRING *localname, const WS_XML_STRING *ns )
{
@@ -868,9 +875,7 @@ static HRESULT write_add_element_node( struct writer *writer, const WS_XML_STRIN
WS_XML_ELEMENT_NODE *elem;
HRESULT hr;
- /* flush current start element if necessary */
- if (writer->state == WRITER_STATE_STARTELEMENT && ((hr = write_endstartelement( writer )) != S_OK))
- return hr;
+ if ((hr = write_flush( writer )) != S_OK) return hr;
if (!prefix && node_type( writer->current ) == WS_XML_NODE_TYPE_ELEMENT)
prefix = writer->current->hdr.prefix;
@@ -950,6 +955,7 @@ HRESULT WINAPI WsWriteText( WS_XML_WRITER *handle, const WS_XML_TEXT *text, WS_E
}
else
{
+ if ((hr = write_flush( writer )) != S_OK) return hr;
if ((hr = write_grow_buffer( writer, src->value.length )) != S_OK) return hr;
write_bytes( writer, src->value.bytes, src->value.length );
}
More information about the wine-cvs
mailing list