зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1768632: Make EnumSet compile for MSVC. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D154338
This commit is contained in:
Родитель
e07b2cf05a
Коммит
e9319e5454
|
@ -75,7 +75,7 @@ class BitSet {
|
|||
PodCopy(mStorage.begin(), aStorage.Elements(), kNumWords);
|
||||
}
|
||||
|
||||
constexpr size_t Size() const { return N; }
|
||||
static constexpr size_t Size() { return N; }
|
||||
|
||||
constexpr bool Test(size_t aPos) const {
|
||||
MOZ_ASSERT(aPos < N);
|
||||
|
|
|
@ -318,15 +318,15 @@ class EnumSet {
|
|||
#endif
|
||||
}
|
||||
|
||||
constexpr size_t MaxBits() const {
|
||||
static constexpr size_t MaxBits() {
|
||||
if constexpr (std::is_unsigned_v<Serialized>) {
|
||||
return sizeof(Serialized) * 8;
|
||||
} else {
|
||||
return mBitField.Size();
|
||||
return Serialized::Size();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
static constexpr size_t kMaxBits = EnumSet().MaxBits();
|
||||
static constexpr size_t kMaxBits = MaxBits();
|
||||
|
||||
Serialized mBitField;
|
||||
|
||||
|
|
|
@ -83,12 +83,12 @@ class BitSetSuite {
|
|||
MOZ_RELEASE_ASSERT(bitset[kBitsPerWord + 1]);
|
||||
|
||||
bitset.ResetAll();
|
||||
for (size_t i = 0; i < bitset.Size(); i++) {
|
||||
for (size_t i = 0; i < decltype(bitset)::Size(); i++) {
|
||||
MOZ_RELEASE_ASSERT(!bitset[i]);
|
||||
}
|
||||
|
||||
bitset.SetAll();
|
||||
for (size_t i = 0; i < bitset.Size(); i++) {
|
||||
for (size_t i = 0; i < decltype(bitset)::Size(); i++) {
|
||||
MOZ_RELEASE_ASSERT(bitset[i]);
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ class BitSetSuite {
|
|||
MOZ_RELEASE_ASSERT(bitset.Storage()[1] == 3);
|
||||
|
||||
bitset.ResetAll();
|
||||
for (size_t i = 0; i < bitset.Size(); i++) {
|
||||
for (size_t i = 0; i < decltype(bitset)::Size(); i++) {
|
||||
MOZ_RELEASE_ASSERT(!bitset[i]);
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче