зеркало из https://github.com/mozilla/gecko-dev.git
Bug 942530 - Use typed enums in jsinfer.h. r=bhackett
This commit is contained in:
Родитель
89289ffa66
Коммит
dad290b1cd
|
@ -10,6 +10,7 @@
|
|||
#define jsinfer_h
|
||||
|
||||
#include "mozilla/MemoryReporting.h"
|
||||
#include "mozilla/TypedEnum.h"
|
||||
|
||||
#include "jsalloc.h"
|
||||
#include "jsfriendapi.h"
|
||||
|
@ -325,7 +326,7 @@ public:
|
|||
};
|
||||
|
||||
/* Flags and other state stored in TypeSet::flags */
|
||||
enum {
|
||||
enum MOZ_ENUM_TYPE(uint32_t) {
|
||||
TYPE_FLAG_UNDEFINED = 0x1,
|
||||
TYPE_FLAG_NULL = 0x2,
|
||||
TYPE_FLAG_BOOLEAN = 0x4,
|
||||
|
@ -375,7 +376,7 @@ enum {
|
|||
typedef uint32_t TypeFlags;
|
||||
|
||||
/* Flags and other state stored in TypeObject::flags */
|
||||
enum {
|
||||
enum MOZ_ENUM_TYPE(uint32_t) {
|
||||
/* Whether this type object is associated with some allocation site. */
|
||||
OBJECT_FLAG_FROM_ALLOCATION_SITE = 0x1,
|
||||
|
||||
|
@ -526,11 +527,13 @@ class TypeSet
|
|||
flags |= TYPE_FLAG_CONFIGURED_PROPERTY;
|
||||
}
|
||||
bool canSetDefinite(unsigned slot) {
|
||||
return (slot + 1) <= (TYPE_FLAG_DEFINITE_MASK >> TYPE_FLAG_DEFINITE_SHIFT);
|
||||
// Note: the cast is required to work around an MSVC issue.
|
||||
return (slot + 1) <= (unsigned(TYPE_FLAG_DEFINITE_MASK) >> TYPE_FLAG_DEFINITE_SHIFT);
|
||||
}
|
||||
void setDefinite(unsigned slot) {
|
||||
JS_ASSERT(canSetDefinite(slot));
|
||||
flags |= ((slot + 1) << TYPE_FLAG_DEFINITE_SHIFT);
|
||||
JS_ASSERT(definiteSlot() == slot);
|
||||
}
|
||||
|
||||
/* Whether any values in this set might have the specified type. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче