зеркало из 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
|
#define jsinfer_h
|
||||||
|
|
||||||
#include "mozilla/MemoryReporting.h"
|
#include "mozilla/MemoryReporting.h"
|
||||||
|
#include "mozilla/TypedEnum.h"
|
||||||
|
|
||||||
#include "jsalloc.h"
|
#include "jsalloc.h"
|
||||||
#include "jsfriendapi.h"
|
#include "jsfriendapi.h"
|
||||||
|
@ -325,7 +326,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Flags and other state stored in TypeSet::flags */
|
/* Flags and other state stored in TypeSet::flags */
|
||||||
enum {
|
enum MOZ_ENUM_TYPE(uint32_t) {
|
||||||
TYPE_FLAG_UNDEFINED = 0x1,
|
TYPE_FLAG_UNDEFINED = 0x1,
|
||||||
TYPE_FLAG_NULL = 0x2,
|
TYPE_FLAG_NULL = 0x2,
|
||||||
TYPE_FLAG_BOOLEAN = 0x4,
|
TYPE_FLAG_BOOLEAN = 0x4,
|
||||||
|
@ -375,7 +376,7 @@ enum {
|
||||||
typedef uint32_t TypeFlags;
|
typedef uint32_t TypeFlags;
|
||||||
|
|
||||||
/* Flags and other state stored in TypeObject::flags */
|
/* 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. */
|
/* Whether this type object is associated with some allocation site. */
|
||||||
OBJECT_FLAG_FROM_ALLOCATION_SITE = 0x1,
|
OBJECT_FLAG_FROM_ALLOCATION_SITE = 0x1,
|
||||||
|
|
||||||
|
@ -526,11 +527,13 @@ class TypeSet
|
||||||
flags |= TYPE_FLAG_CONFIGURED_PROPERTY;
|
flags |= TYPE_FLAG_CONFIGURED_PROPERTY;
|
||||||
}
|
}
|
||||||
bool canSetDefinite(unsigned slot) {
|
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) {
|
void setDefinite(unsigned slot) {
|
||||||
JS_ASSERT(canSetDefinite(slot));
|
JS_ASSERT(canSetDefinite(slot));
|
||||||
flags |= ((slot + 1) << TYPE_FLAG_DEFINITE_SHIFT);
|
flags |= ((slot + 1) << TYPE_FLAG_DEFINITE_SHIFT);
|
||||||
|
JS_ASSERT(definiteSlot() == slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Whether any values in this set might have the specified type. */
|
/* Whether any values in this set might have the specified type. */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче