Bug 942530 - Use typed enums in jsinfer.h. r=bhackett

This commit is contained in:
Jan de Mooij 2013-12-16 10:47:31 +01:00
Родитель 89289ffa66
Коммит dad290b1cd
1 изменённых файлов: 6 добавлений и 3 удалений

Просмотреть файл

@ -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. */