Bug 1562033

Adjust tokenization of U+0000 (java htmlparser)
This commit is contained in:
Matt A. Tobin 2020-01-15 18:10:14 -05:00 • committed by Roy Tam
commit 7938a0ac1b

View file

@ -2457,8 +2457,6 @@ public class Tokenizer implements Locator {
} }
c = checkChar(buf, pos); c = checkChar(buf, pos);
switch (c) { switch (c) {
case '\u0000':
break stateloop;
case '-': case '-':
clearStrBufAfterOneHyphen(); clearStrBufAfterOneHyphen();
state = transition(state, Tokenizer.COMMENT_START, reconsume, pos); state = transition(state, Tokenizer.COMMENT_START, reconsume, pos);
@ -2963,9 +2961,6 @@ public class Tokenizer implements Locator {
break stateloop; break stateloop;
} }
c = checkChar(buf, pos); c = checkChar(buf, pos);
if (c == '\u0000') {
break stateloop;
}
/* /*
* Unlike the definition is the spec, this state does not * Unlike the definition is the spec, this state does not
* return a value and never requires the caller to * return a value and never requires the caller to
@ -2991,6 +2986,7 @@ public class Tokenizer implements Locator {
case '\u000C': case '\u000C':
case '<': case '<':
case '&': case '&':
case '\u0000':
emitOrAppendCharRefBuf(returnState); emitOrAppendCharRefBuf(returnState);
if ((returnState & DATA_AND_RCDATA_MASK) == 0) { if ((returnState & DATA_AND_RCDATA_MASK) == 0) {
cstart = pos; cstart = pos;
@ -3044,9 +3040,6 @@ public class Tokenizer implements Locator {
break stateloop; break stateloop;
} }
c = checkChar(buf, pos); c = checkChar(buf, pos);
if (c == '\u0000') {
break stateloop;
}
/* /*
* The data structure is as follows: * The data structure is as follows:
* *
@ -3122,9 +3115,6 @@ public class Tokenizer implements Locator {
break stateloop; break stateloop;
} }
c = checkChar(buf, pos); c = checkChar(buf, pos);
if (c == '\u0000') {
break stateloop;
}
entCol++; entCol++;
/* /*
* Consume the maximum number of characters possible, * Consume the maximum number of characters possible,