Bug 1358037 - Inline the methods of nsHtml5ElementName and nsHtml5AttributeName. r=wchen

Moving methods that refer to constant to the header that defines the
constants makes it infeasible to #define the constants at the end
of the header. To avoid introducing a new pass over the Java AST,
this patch turns the primitive constants that were
previously #defined into C++ contants, which, according to
Stroustrup 3rd ed., are handled at compile-time and don't consume
storage.

MozReview-Commit-ID: JnaDgW2OM7t
This commit is contained in:
Henri Sivonen
2017-04-20 10:34:32 +03:00
parent 5024e6c952
commit 3b050334d4
25 changed files with 3033 additions and 2179 deletions

View File

@@ -42,12 +42,13 @@
#include "nsIUnicodeDecoder.h"
#include "nsHtml5Macros.h"
#include "nsIContentHandle.h"
#include "nsHtml5Portability.h"
#include "nsHtml5AttributeName.h"
#include "nsHtml5ElementName.h"
#include "nsHtml5Tokenizer.h"
#include "nsHtml5TreeBuilder.h"
#include "nsHtml5MetaScanner.h"
#include "nsHtml5AttributeName.h"
#include "nsHtml5ElementName.h"
#include "nsHtml5UTF16Buffer.h"
#include "nsHtml5StateSnapshot.h"
#include "nsHtml5Portability.h"
@@ -57,31 +58,31 @@
int32_t
nsHtml5StackNode::getGroup()
{
return flags & NS_HTML5ELEMENT_NAME_GROUP_MASK;
return flags & nsHtml5ElementName::GROUP_MASK;
}
bool
nsHtml5StackNode::isScoping()
{
return (flags & NS_HTML5ELEMENT_NAME_SCOPING);
return (flags & nsHtml5ElementName::SCOPING);
}
bool
nsHtml5StackNode::isSpecial()
{
return (flags & NS_HTML5ELEMENT_NAME_SPECIAL);
return (flags & nsHtml5ElementName::SPECIAL);
}
bool
nsHtml5StackNode::isFosterParenting()
{
return (flags & NS_HTML5ELEMENT_NAME_FOSTER_PARENTING);
return (flags & nsHtml5ElementName::FOSTER_PARENTING);
}
bool
nsHtml5StackNode::isHtmlIntegrationPoint()
{
return (flags & NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT);
return (flags & nsHtml5ElementName::HTML_INTEGRATION_POINT);
}
@@ -174,9 +175,12 @@ nsHtml5StackNode::nsHtml5StackNode(nsHtml5ElementName* elementName,
int32_t
nsHtml5StackNode::prepareSvgFlags(int32_t flags)
{
flags &= ~(NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
if ((flags & NS_HTML5ELEMENT_NAME_SCOPING_AS_SVG)) {
flags |= (NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT);
flags &=
~(nsHtml5ElementName::FOSTER_PARENTING | nsHtml5ElementName::SCOPING |
nsHtml5ElementName::SPECIAL | nsHtml5ElementName::OPTIONAL_END_TAG);
if ((flags & nsHtml5ElementName::SCOPING_AS_SVG)) {
flags |= (nsHtml5ElementName::SCOPING | nsHtml5ElementName::SPECIAL |
nsHtml5ElementName::HTML_INTEGRATION_POINT);
}
return flags;
}
@@ -184,12 +188,14 @@ nsHtml5StackNode::prepareSvgFlags(int32_t flags)
int32_t
nsHtml5StackNode::prepareMathFlags(int32_t flags, bool markAsIntegrationPoint)
{
flags &= ~(NS_HTML5ELEMENT_NAME_FOSTER_PARENTING | NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL | NS_HTML5ELEMENT_NAME_OPTIONAL_END_TAG);
if ((flags & NS_HTML5ELEMENT_NAME_SCOPING_AS_MATHML)) {
flags |= (NS_HTML5ELEMENT_NAME_SCOPING | NS_HTML5ELEMENT_NAME_SPECIAL);
flags &=
~(nsHtml5ElementName::FOSTER_PARENTING | nsHtml5ElementName::SCOPING |
nsHtml5ElementName::SPECIAL | nsHtml5ElementName::OPTIONAL_END_TAG);
if ((flags & nsHtml5ElementName::SCOPING_AS_MATHML)) {
flags |= (nsHtml5ElementName::SCOPING | nsHtml5ElementName::SPECIAL);
}
if (markAsIntegrationPoint) {
flags |= NS_HTML5ELEMENT_NAME_HTML_INTEGRATION_POINT;
flags |= nsHtml5ElementName::HTML_INTEGRATION_POINT;
}
return flags;
}