@@ -2152,7 +2152,7 @@ PHP_FUNCTION(dom_document_save_html)
2152
2152
xmlBufferPtr buf ;
2153
2153
dom_object * intern , * nodeobj ;
2154
2154
xmlChar * mem = NULL ;
2155
- int size = 0 , format ;
2155
+ int format ;
2156
2156
dom_doc_propsptr doc_props ;
2157
2157
2158
2158
if (zend_parse_method_parameters (ZEND_NUM_ARGS (), getThis (),
@@ -2182,39 +2182,26 @@ PHP_FUNCTION(dom_document_save_html)
2182
2182
}
2183
2183
2184
2184
if (node -> type == XML_DOCUMENT_FRAG_NODE ) {
2185
- int one_size ;
2186
-
2187
2185
for (node = node -> children ; node ; node = node -> next ) {
2188
2186
htmlNodeDumpFormatOutput (outBuf , docp , node , NULL , format );
2189
- #ifdef LIBXML2_NEW_BUFFER
2190
- one_size = !outBuf -> error ? xmlOutputBufferGetSize (outBuf ) : -1 ;
2191
- #else
2192
- one_size = !outBuf -> error ? outBuf -> buffer -> use : -1 ;
2193
- #endif
2194
- if (one_size >= 0 ) {
2195
- size = one_size ;
2196
- } else {
2197
- size = -1 ;
2187
+ if (outBuf -> error ) {
2198
2188
break ;
2199
2189
}
2200
2190
}
2201
2191
} else {
2202
2192
htmlNodeDumpFormatOutput (outBuf , docp , node , NULL , format );
2203
- #ifdef LIBXML2_NEW_BUFFER
2204
- size = !outBuf -> error ? xmlOutputBufferGetSize (outBuf ): -1 ;
2205
- #else
2206
- size = !outBuf -> error ? outBuf -> buffer -> use : -1 ;
2207
- #endif
2208
2193
}
2209
- if (size >= 0 ) {
2194
+ if (!outBuf -> error ) {
2195
+ xmlOutputBufferFlush (outBuf );
2210
2196
#ifdef LIBXML2_NEW_BUFFER
2211
- mem = (xmlChar * ) xmlOutputBufferGetContent ( outBuf );
2197
+ mem = (xmlChar * ) xmlBufferContent ( buf );
2212
2198
#else
2213
2199
mem = (xmlChar * ) outBuf -> buffer -> content ;
2214
2200
#endif
2215
2201
if (!mem ) {
2216
2202
RETVAL_FALSE ;
2217
2203
} else {
2204
+ int size = xmlBufferLength (buf );
2218
2205
RETVAL_STRINGL ((const char * ) mem , size );
2219
2206
}
2220
2207
} else {
@@ -2223,6 +2210,7 @@ PHP_FUNCTION(dom_document_save_html)
2223
2210
}
2224
2211
xmlOutputBufferClose (outBuf );
2225
2212
} else {
2213
+ int size = 0 ;
2226
2214
#if LIBXML_VERSION >= 20623
2227
2215
htmlDocDumpMemoryFormat (docp , & mem , & size , format );
2228
2216
#else
0 commit comments