summaryrefslogtreecommitdiffstats
path: root/parser/html/nsHtml5TreeOperation.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/nsHtml5TreeOperation.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/nsHtml5TreeOperation.cpp')
-rw-r--r--parser/html/nsHtml5TreeOperation.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/parser/html/nsHtml5TreeOperation.cpp b/parser/html/nsHtml5TreeOperation.cpp
index af246a253..3877e01b8 100644
--- a/parser/html/nsHtml5TreeOperation.cpp
+++ b/parser/html/nsHtml5TreeOperation.cpp
@@ -319,11 +319,10 @@ nsHtml5TreeOperation::AddAttributes(nsIContent* aNode,
if (!node->HasAttr(nsuri, localName)) {
// prefix doesn't need regetting. it is always null or a static atom
// local name is never null
- node->SetAttr(nsuri,
- localName,
- aAttributes->getPrefixNoBoundsCheck(i),
- *(aAttributes->getValueNoBoundsCheck(i)),
- true);
+ nsString value; // Not Auto, because using it to hold nsStringBuffer*
+ aAttributes->getValueNoBoundsCheck(i).ToString(value);
+ node->SetAttr(
+ nsuri, localName, aAttributes->getPrefixNoBoundsCheck(i), value, true);
// XXX what to do with nsresult?
}
}
@@ -418,12 +417,14 @@ nsHtml5TreeOperation::CreateElement(int32_t aNs,
nsCOMPtr<nsIAtom> prefix = aAttributes->getPrefixNoBoundsCheck(i);
int32_t nsuri = aAttributes->getURINoBoundsCheck(i);
+ nsString value; // Not Auto, because using it to hold nsStringBuffer*
+ aAttributes->getValueNoBoundsCheck(i).ToString(value);
if (aNs == kNameSpaceID_XHTML &&
nsHtml5Atoms::a == aName &&
nsHtml5Atoms::name == localName) {
// This is an HTML5-incompliant Geckoism.
// Remove when fixing bug 582361
- NS_ConvertUTF16toUTF8 cname(*(aAttributes->getValueNoBoundsCheck(i)));
+ NS_ConvertUTF16toUTF8 cname(value);
NS_ConvertUTF8toUTF16 uv(nsUnescape(cname.BeginWriting()));
newContent->SetAttr(nsuri,
localName,
@@ -431,7 +432,6 @@ nsHtml5TreeOperation::CreateElement(int32_t aNs,
uv,
false);
} else {
- nsString& value = *(aAttributes->getValueNoBoundsCheck(i));
newContent->SetAttr(nsuri,
localName,
prefix,