Bug 489820 part 2 - Grow buffers to the worst-case size before tokenizing; fix comments. r=wchen.

This commit is contained in:
Henri Sivonen
2015-08-25 18:05:45 +03:00
parent ee6c94fc31
commit bee2d42d10
16 changed files with 231 additions and 52 deletions

View File

@@ -109,6 +109,10 @@ nsHtml5StringParser::Tokenize(const nsAString& aSourceBuffer,
buffer.adjust(lastWasCR);
lastWasCR = false;
if (buffer.hasMore()) {
if (!mTokenizer->EnsureBufferSpace(buffer.getLength())) {
rv = mBuilder->MarkAsBroken(NS_ERROR_OUT_OF_MEMORY);
break;
}
lastWasCR = mTokenizer->tokenizeBuffer(&buffer);
if (NS_FAILED(rv = mBuilder->IsBroken())) {
break;
@@ -116,7 +120,9 @@ nsHtml5StringParser::Tokenize(const nsAString& aSourceBuffer,
}
}
}
mTokenizer->eof();
if (NS_SUCCEEDED(rv)) {
mTokenizer->eof();
}
mTokenizer->end();
mBuilder->Finish();
mAtomTable.Clear();