[Webkit-unassigned] [Bug 111250] New: AtomicHTMLToken should not be heap allocated or RefCounted
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Mar 2 03:07:25 PST 2013
https://bugs.webkit.org/show_bug.cgi?id=111250
Summary: AtomicHTMLToken should not be heap allocated or
RefCounted
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: New Bugs
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: eric at webkit.org
CC: abarth at webkit.org, tonyg at chromium.org
Blocks: 106127
AtomicHTMLToken should not be heap allocated or RefCounted
This is done so that it can be saved on the HTMLElementStack, but it appears we only use this in 3 places:
/Users/eseidel/Projects/WebKit/Source/WebCore/html/parser/HTMLElementStack.cpp:
291 return false;
292 if (item->hasTagName(MathMLNames::annotation_xmlTag)) {
293: Attribute* encodingAttr = item->token()->getAttributeItem(MathMLNames::encodingAttr);
294 if (encodingAttr) {
295 const String& encoding = encodingAttr->value();
/Users/eseidel/Projects/WebKit/Source/WebCore/html/parser/HTMLFormattingElementList.cpp:
179 remainingCandidates.reserveInitialCapacity(candidates.size());
180
181: const Vector<Attribute>& attributes = newItem->token()->attributes();
182 for (size_t i = 0; i < attributes.size(); ++i) {
183 const Attribute& attribute = attributes[i];
...
190 ASSERT(newItem->localName() == candidate->localName() && newItem->namespaceURI() == candidate->namespaceURI());
191
192: Attribute* candidateAttribute = candidate->token()->getAttributeItem(attribute.name());
193 if (candidateAttribute && candidateAttribute->value() == attribute.value())
194 remainingCandidates.append(candidate);
This just adds an extra malloc, and some complexity to AtomicHTMLToken we don't need, including the ability to clear it's externalCharacterBuffer pointers so we don't grab at memory after its freed. See bug 111248.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list