diff options
author | Moonchild <moonchild@palemoon.org> | 2019-07-07 10:31:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-07 10:31:28 +0000 |
commit | 0845614a5eb3f5fafda7f7b82f041d1a8a0ba955 (patch) | |
tree | fecd28d17cf5fe91cd11d918e0ade88265b00a29 /parser/html/nsHtml5TreeOperation.cpp | |
parent | a3ed49dde7ad33c6b934424ce86d77dc5209a97f (diff) | |
parent | 7c5a0db237c7a43136ee3cdc6cfb0663778d9e2c (diff) | |
download | UXP-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.cpp | 14 |
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, |