Bug 138529 - Call faster HTMLElement::hasTagName() in HTMLCollection
Summary: Call faster HTMLElement::hasTagName() in HTMLCollection
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-07 17:31 PST by Chris Dumez
Modified: 2014-11-08 21:59 PST (History)
5 users (show)

See Also:


Attachments
Patch (3.52 KB, patch)
2014-11-08 10:05 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (3.39 KB, patch)
2014-11-08 20:52 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (3.54 KB, patch)
2014-11-08 21:13 PST, Chris Dumez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Dumez 2014-11-07 17:31:29 PST
Call faster HTMLElement::hasTagName() in HTMLCollection instead of slower Node::hasTagName().
Comment 1 Chris Dumez 2014-11-08 10:05:51 PST
Created attachment 241230 [details]
Patch
Comment 2 Darin Adler 2014-11-08 13:49:18 PST
Comment on attachment 241230 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241230&action=review

> Source/WebCore/html/HTMLCollection.cpp:172
> +inline bool isMatchingHTMLElement(const HTMLCollection& htmlCollection, HTMLElement& element)

I would suggest renaming the argument "collection" instead of "htmlCollection".

> Source/WebCore/html/HTMLCollection.cpp:209
>          return static_cast<const DocumentNameCollection&>(htmlCollection).elementMatches(element);

Seems like we want checked casts for these some day.

> Source/WebCore/html/HTMLCollection.cpp:221
> +inline bool isMatchingElement(const HTMLCollection& htmlCollection, Element& element)

I would suggest renaming the argument "collection" instead of "htmlCollection".

> Source/WebCore/html/HTMLCollection.cpp:229
> +        return static_cast<const WindowNameCollection&>(htmlCollection).elementMatches(element);

Seems like we want checked casts for these some day.

> Source/WebCore/html/HTMLCollection.cpp:235
> +    // Collection types that only deal with HTMLElements.
> +    return is<HTMLElement>(element) && isMatchingHTMLElement(htmlCollection, downcast<HTMLElement>(element));

Why not put this code inside the default rather than using "default: break"?
Comment 3 Chris Dumez 2014-11-08 17:19:06 PST
Comment on attachment 241230 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241230&action=review

>> Source/WebCore/html/HTMLCollection.cpp:209
>>          return static_cast<const DocumentNameCollection&>(htmlCollection).elementMatches(element);
> 
> Seems like we want checked casts for these some day.

Definitely, this is already on my todo list.
Comment 4 Chris Dumez 2014-11-08 20:52:28 PST
Created attachment 241246 [details]
Patch
Comment 5 Chris Dumez 2014-11-08 21:13:25 PST
Created attachment 241248 [details]
Patch
Comment 6 WebKit Commit Bot 2014-11-08 21:59:55 PST
Comment on attachment 241248 [details]
Patch

Clearing flags on attachment: 241248

Committed r175788: <http://trac.webkit.org/changeset/175788>
Comment 7 WebKit Commit Bot 2014-11-08 21:59:59 PST
All reviewed patches have been landed.  Closing bug.