Also you could increment fCurrentEntity.position at the end of the loop, save 1 "if" and indent
correctly with 8 spaces:
1166 for (; fCurrentEntity.position<fCurrentEntity.count;
fCurrentEntity.position++) {
1167 c = fCurrentEntity.ch[fCurrentEntity.position];
1168 if ((c == quote &&
1169 (!fCurrentEntity.literal || isExternal)) ||
1170 c == '%' || !XMLChar.isContent(c)) {
1171 break;
1172 }
1173 if (whiteSpaceInfoNeeded && c == ’\t’) {
1174 storeWhiteSpace(fCurrentEntity.position);
1175 }
1176 }
-Ulf
On 17.12.2013 20:49, Ulf Zibis wrote:
Hi Joe,
I would use ’\t’ instead of 0x9, to stay consistent with ahead code:
1175 if (c == ’\t’) {
Lines 1214..1221 could be simpler:
1214 if (whiteSpaceLen >= whiteSpaceLookup.length) {
1215 int [] tmp = new int[whiteSpaceLookup.length*2];
1216 System.arraycopy(whiteSpaceLookup, 0, tmp, 0,
whiteSpaceLookup.length);
1217 whiteSpaceLookup = tmp;
1218 }
1219 whiteSpaceLookup[whiteSpaceLen++] = whiteSpacePos;
Or even shorter:
1214 if (whiteSpaceLen >= whiteSpaceLookup.length)
1215 whiteSpaceLookup = Arrays.copyOf(whiteSpaceLookup,
whiteSpaceLookup.length*2);
1216 whiteSpaceLookup[whiteSpaceLen++] = whiteSpacePos;
(please insert spaces around if clause, else and after commas.)
-Ulf
On 16.12.2013 20:31, huizhe wang wrote:
Hi,
This is a quick fix for a whitespace buffer that was not adjusted properly in one of the two
cases. The buffer, whiteSpaceLookup, is filled in two cases and adjusted properly the 2nd time.
The code is moved into a method storeWhiteSpace so that it's shared for the 1st case as well.
Note at line 1175, there is no need to save character 0x20 since all whitespace characters will
later be replaced with character 0x20.
webrevs:
http://cr.openjdk.java.net/~joehw/jdk8/8029955/webrev/
Thanks,
Joe