diff --git a/HTMLparser.c b/HTMLparser.c index cb2671655e2a547dd0dfab8dfa44d34ac5c15528_SFRNTHBhcnNlci5j..8e47bfa4203382266b82597804b6396bc0d8e44b_SFRNTHBhcnNlci5j 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -7116,7 +7116,7 @@ htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur, const char *URL, const char *encoding, int options) { - xmlParserInputPtr stream; + const char *buf; if (cur == NULL) return (NULL); @@ -7120,18 +7120,9 @@ 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 cb2671655e2a547dd0dfab8dfa44d34ac5c15528_cGFyc2VyLmM=..8e47bfa4203382266b82597804b6396bc0d8e44b_cGFyc2VyLmM= 100644 --- a/parser.c +++ b/parser.c @@ -15359,7 +15359,7 @@ xmlCtxtReadDoc(xmlParserCtxtPtr ctxt, const xmlChar * cur, const char *URL, const char *encoding, int options) { - xmlParserInputPtr stream; + const char *buf; if (cur == NULL) return (NULL); @@ -15363,18 +15363,8 @@ 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)); } /**