Bug 1297306 - part5:create enum constructors for EnumTable. r=baku

Enable nsAttrValue::EnumTable to be initialized with enum. So, we could get rid
of the castings in EnumTable. Fix EnumTable initialization comment.

For those untyped enumerations, declare them with uint8_t, as to other typed
enumerations with type size larger than int16_t, force casting to int16_t.

Use {nullptr,0} instead of {0} to represent the last entry.

MozReview-Commit-ID: 7Dma3Apkmxj
This commit is contained in:
Jeremy Chen
2016-09-07 10:20:17 +08:00
parent 43a4f4efc9
commit c22b72adf2
26 changed files with 76 additions and 54 deletions

View File

@@ -22,7 +22,7 @@ NS_IMPL_NS_NEW_HTML_ELEMENT(Menu)
namespace mozilla {
namespace dom {
enum MenuType
enum MenuType : uint8_t
{
MENU_TYPE_CONTEXT = 1,
MENU_TYPE_TOOLBAR,
@@ -33,7 +33,7 @@ static const nsAttrValue::EnumTable kMenuTypeTable[] = {
{ "context", MENU_TYPE_CONTEXT },
{ "toolbar", MENU_TYPE_TOOLBAR },
{ "list", MENU_TYPE_LIST },
{ 0 }
{ nullptr, 0 }
};
static const nsAttrValue::EnumTable* kMenuDefaultType =