Bug 115755

Summary: Devirtualize Document class type checking
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: DOMAssignee: Ryosuke Niwa <rniwa>
Status: RESOLVED FIXED    
Severity: Normal CC: benjamin, commit-queue, d-r, eric.carlson, esprehn+autocc, fmalita, glenn, japhet, jer.noble, kling, koivisto, pdr, schenney
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Cleanup benjamin: review+

Ryosuke Niwa
Reported 2013-05-07 13:50:48 PDT
Merge https://chromium.googlesource.com/chromium/blink/+/dae5adc768d5ce6bff301df6515745da8ea24950 Devirtualize Document class type checking Document has a bunch of virtual bool is*Document() methods on it, but it also has two bools for XHTML and HTML documents which is silly. We can merge them all together into an enum of values and devirtualize the type checking methods. This patch introduces the DocumentClass enum that is used to signal what subclass of Document, or HTMLDocument, is being implemented.
Attachments
Cleanup (12.00 KB, patch)
2013-05-07 16:26 PDT, Ryosuke Niwa
benjamin: review+
Ryosuke Niwa
Comment 1 2013-05-07 16:26:00 PDT
Benjamin Poulain
Comment 2 2013-05-07 16:37:54 PDT
Comment on attachment 200991 [details] Cleanup View in context: https://bugs.webkit.org/attachment.cgi?id=200991&action=review > Source/WebCore/dom/Document.h:1486 > + unsigned m_documentClasses; I would just use a uchar8_t here. That way it fits on a word with the 3 boolean bellow. > Source/WebCore/html/HTMLDocument.h:78 > + HTMLDocument(Frame*, const KURL&, unsigned documentClasses = HTMLDocumentClass); I think it should have a default of 0. Otherwise, an caller may think passing something else override the HTMLDocumentClass. Which is not true because the constructor does the right thing.
Ryosuke Niwa
Comment 3 2013-05-07 18:59:29 PDT
Note You need to log in before you can comment on or make changes to this bug.