summaryrefslogtreecommitdiffstats
path: root/parser/html/nsHtml5Tokenizer.cpp
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2019-07-07 10:31:28 +0000
committerGitHub <noreply@github.com>2019-07-07 10:31:28 +0000
commit0845614a5eb3f5fafda7f7b82f041d1a8a0ba955 (patch)
treefecd28d17cf5fe91cd11d918e0ade88265b00a29 /parser/html/nsHtml5Tokenizer.cpp
parenta3ed49dde7ad33c6b934424ce86d77dc5209a97f (diff)
parent7c5a0db237c7a43136ee3cdc6cfb0663778d9e2c (diff)
downloadUXP-0845614a5eb3f5fafda7f7b82f041d1a8a0ba955.tar
UXP-0845614a5eb3f5fafda7f7b82f041d1a8a0ba955.tar.gz
UXP-0845614a5eb3f5fafda7f7b82f041d1a8a0ba955.tar.lz
UXP-0845614a5eb3f5fafda7f7b82f041d1a8a0ba955.tar.xz
UXP-0845614a5eb3f5fafda7f7b82f041d1a8a0ba955.zip
Merge pull request #1163 from win7-7/nsHtml5HtmlAttributes-clear
Introduce a new non-heap-allocated type for holding nsStringBuffer* in the HTML parser
Diffstat (limited to 'parser/html/nsHtml5Tokenizer.cpp')
-rw-r--r--parser/html/nsHtml5Tokenizer.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/parser/html/nsHtml5Tokenizer.cpp b/parser/html/nsHtml5Tokenizer.cpp
index 2838d74aa..a9db8d0c1 100644
--- a/parser/html/nsHtml5Tokenizer.cpp
+++ b/parser/html/nsHtml5Tokenizer.cpp
@@ -32,7 +32,7 @@
#include "nsIAtom.h"
#include "nsHtml5AtomTable.h"
-#include "nsString.h"
+#include "nsHtml5String.h"
#include "nsIContent.h"
#include "nsTraceRefcnt.h"
#include "jArray.h"
@@ -113,7 +113,8 @@ nsHtml5Tokenizer::setInterner(nsHtml5AtomTable* interner)
}
void
-nsHtml5Tokenizer::initLocation(nsString* newPublicId, nsString* newSystemId)
+nsHtml5Tokenizer::initLocation(nsHtml5String newPublicId,
+ nsHtml5String newSystemId)
{
this->systemId = newSystemId;
this->publicId = newPublicId;
@@ -222,10 +223,11 @@ nsHtml5Tokenizer::emitOrAppendCharRefBuf(int32_t returnState)
}
}
-nsString*
+nsHtml5String
nsHtml5Tokenizer::strBufToString()
{
- nsString* str = nsHtml5Portability::newStringFromBuffer(strBuf, 0, strBufLen, tokenHandler);
+ nsHtml5String str =
+ nsHtml5Portability::newStringFromBuffer(strBuf, 0, strBufLen, tokenHandler);
clearStrBufAfterUse();
return str;
}
@@ -350,7 +352,7 @@ void
nsHtml5Tokenizer::addAttributeWithValue()
{
if (attributeName) {
- nsString* val = strBufToString();
+ nsHtml5String val = strBufToString();
if (mViewSource) {
mViewSource->MaybeLinkifyAttributeValue(attributeName, val);
}
@@ -3496,11 +3498,11 @@ nsHtml5Tokenizer::initDoctypeFields()
clearStrBufAfterUse();
doctypeName = nsHtml5Atoms::emptystring;
if (systemIdentifier) {
- nsHtml5Portability::releaseString(systemIdentifier);
+ systemIdentifier.Release();
systemIdentifier = nullptr;
}
if (publicIdentifier) {
- nsHtml5Portability::releaseString(publicIdentifier);
+ publicIdentifier.Release();
publicIdentifier = nullptr;
}
forceQuirks = false;
@@ -3662,11 +3664,11 @@ nsHtml5Tokenizer::eof()
errEofInDoctype();
doctypeName = nsHtml5Atoms::emptystring;
if (systemIdentifier) {
- nsHtml5Portability::releaseString(systemIdentifier);
+ systemIdentifier.Release();
systemIdentifier = nullptr;
}
if (publicIdentifier) {
- nsHtml5Portability::releaseString(publicIdentifier);
+ publicIdentifier.Release();
publicIdentifier = nullptr;
}
forceQuirks = true;
@@ -3896,14 +3898,14 @@ nsHtml5Tokenizer::emitDoctypeToken(int32_t pos)
cstart = pos + 1;
tokenHandler->doctype(doctypeName, publicIdentifier, systemIdentifier, forceQuirks);
doctypeName = nullptr;
- nsHtml5Portability::releaseString(publicIdentifier);
+ publicIdentifier.Release();
publicIdentifier = nullptr;
- nsHtml5Portability::releaseString(systemIdentifier);
+ systemIdentifier.Release();
systemIdentifier = nullptr;
}
bool
-nsHtml5Tokenizer::internalEncodingDeclaration(nsString* internalCharset)
+nsHtml5Tokenizer::internalEncodingDeclaration(nsHtml5String internalCharset)
{
if (encodingDeclarationHandler) {
return encodingDeclarationHandler->internalEncodingDeclaration(internalCharset);
@@ -3938,11 +3940,11 @@ nsHtml5Tokenizer::end()
strBuf = nullptr;
doctypeName = nullptr;
if (systemIdentifier) {
- nsHtml5Portability::releaseString(systemIdentifier);
+ systemIdentifier.Release();
systemIdentifier = nullptr;
}
if (publicIdentifier) {
- nsHtml5Portability::releaseString(publicIdentifier);
+ publicIdentifier.Release();
publicIdentifier = nullptr;
}
if (tagName) {
@@ -4041,13 +4043,13 @@ nsHtml5Tokenizer::loadState(nsHtml5Tokenizer* other)
} else {
doctypeName = nsHtml5Portability::newLocalFromLocal(other->doctypeName, interner);
}
- nsHtml5Portability::releaseString(systemIdentifier);
+ systemIdentifier.Release();
if (!other->systemIdentifier) {
systemIdentifier = nullptr;
} else {
systemIdentifier = nsHtml5Portability::newStringFromString(other->systemIdentifier);
}
- nsHtml5Portability::releaseString(publicIdentifier);
+ publicIdentifier.Release();
if (!other->publicIdentifier) {
publicIdentifier = nullptr;
} else {