diff --git a/xmlIO.c b/xmlIO.c index 789fc5e72..ee3cc9615 100644 --- a/xmlIO.c +++ b/xmlIO.c @@ -1824,9 +1824,12 @@ xmlOutputBufferCreateBuffer(xmlBuffer *buffer, */ const xmlChar * xmlOutputBufferGetContent(xmlOutputBuffer *out) { - if ((out == NULL) || (out->buffer == NULL) || (out->error != 0)) + if ((out == NULL) || (out->buffer == NULL) || ((out->encoder != NULL) && (out->conv == NULL)) || (out->error != 0)) return(NULL); + if (out->encoder != NULL) + return(xmlBufContent(out->conv)); + return(xmlBufContent(out->buffer)); } @@ -1838,9 +1841,12 @@ xmlOutputBufferGetContent(xmlOutputBuffer *out) { */ size_t xmlOutputBufferGetSize(xmlOutputBuffer *out) { - if ((out == NULL) || (out->buffer == NULL) || (out->error != 0)) + if ((out == NULL) || (out->buffer == NULL) || ((out->encoder != NULL) && (out->conv == NULL)) || (out->error != 0)) return(0); + if (out->encoder != NULL) + return(xmlBufUse(out->conv)); + return(xmlBufUse(out->buffer)); }