diff --git a/HTMLparser.c b/HTMLparser.c index abc4e905..aef82c02 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -7116,22 +7116,13 @@ htmlDocPtr htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur, const char *URL, const char *encoding, int options) { - xmlParserInputPtr stream; + const char *buf; if (cur == NULL) return (NULL); - if (ctxt == NULL) - return (NULL); - xmlInitParser(); - - htmlCtxtReset(ctxt); - - stream = xmlNewStringInputStream(ctxt, cur); - if (stream == NULL) { - return (NULL); - } - inputPush(ctxt, stream); - return (htmlDoRead(ctxt, URL, encoding, options, 1)); + buf = (const char *) cur; + return (htmlCtxtReadMemory(ctxt, buf, strlen(buf), URL, encoding, + options)); } /** diff --git a/parser.c b/parser.c index e660b0a7..c313d88a 100644 --- a/parser.c +++ b/parser.c @@ -15359,22 +15359,12 @@ xmlDocPtr xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar * cur, const char *URL, const char *encoding, int options) { - xmlParserInputPtr stream; + const char *buf; if (cur == NULL) return (NULL); - if (ctxt == NULL) - return (NULL); - xmlInitParser(); - - xmlCtxtReset(ctxt); - - stream = xmlNewStringInputStream(ctxt, cur); - if (stream == NULL) { - return (NULL); - } - inputPush(ctxt, stream); - return (xmlDoRead(ctxt, URL, encoding, options, 1)); + buf = (const char *) cur; + return (xmlCtxtReadMemory(ctxt, buf, strlen(buf), URL, encoding, options)); } /**