Bug 1355769 - Avoid malloc for nsHtml5ElementName when processing a non-interned element name.

Tag UXP Issue #1344
This commit is contained in:
Gaming4JC 2020-01-18 13:19:02 -05:00 committed by Roy Tam
commit 4f93df8cbf
8 changed files with 109 additions and 90 deletions

View file

@ -23,11 +23,6 @@
package nu.validator.htmlparser.test;
import nu.validator.htmlparser.common.TokenHandler;
import nu.validator.htmlparser.impl.ElementName;
import nu.validator.htmlparser.impl.HtmlAttributes;
import nu.validator.htmlparser.impl.Tokenizer;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
@ -38,6 +33,11 @@ import com.sdicons.json.model.JSONNull;
import com.sdicons.json.model.JSONObject;
import com.sdicons.json.model.JSONString;
import nu.validator.htmlparser.common.TokenHandler;
import nu.validator.htmlparser.impl.ElementName;
import nu.validator.htmlparser.impl.HtmlAttributes;
import nu.validator.htmlparser.impl.Tokenizer;
public class JSONArrayTokenHandler implements TokenHandler, ErrorHandler {
private static final JSONString DOCTYPE = new JSONString("DOCTYPE");
@ -102,7 +102,7 @@ public class JSONArrayTokenHandler implements TokenHandler, ErrorHandler {
}
public void endTag(ElementName eltName) throws SAXException {
String name = eltName.name;
String name = eltName.getName();
flushCharacters();
JSONArray token = new JSONArray();
token.getValue().add(END_TAG);
@ -123,7 +123,7 @@ public class JSONArrayTokenHandler implements TokenHandler, ErrorHandler {
public void startTag(ElementName eltName, HtmlAttributes attributes,
boolean selfClosing) throws SAXException {
String name = eltName.name;
String name = eltName.getName();
flushCharacters();
JSONArray token = new JSONArray();
token.getValue().add(START_TAG);

View file

@ -29,6 +29,11 @@ import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import nu.validator.htmlparser.common.TokenHandler;
import nu.validator.htmlparser.impl.ElementName;
import nu.validator.htmlparser.impl.ErrorReportingTokenizer;
@ -36,11 +41,6 @@ import nu.validator.htmlparser.impl.HtmlAttributes;
import nu.validator.htmlparser.impl.Tokenizer;
import nu.validator.htmlparser.io.Driver;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
public class TokenPrinter implements TokenHandler, ErrorHandler {
private final Writer writer;
@ -94,7 +94,7 @@ public class TokenPrinter implements TokenHandler, ErrorHandler {
public void endTag(ElementName eltName) throws SAXException {
try {
writer.write(')');
writer.write(eltName.name);
writer.write(eltName.getName());
writer.write('\n');
} catch (IOException e) {
throw new SAXException(e);
@ -117,7 +117,7 @@ public class TokenPrinter implements TokenHandler, ErrorHandler {
throws SAXException {
try {
writer.write('(');
writer.write(eltName.name);
writer.write(eltName.getName());
writer.write('\n');
for (int i = 0; i < attributes.getLength(); i++) {
writer.write('A');