Bug 1407822 - Remove BumpChunk::magic_ value when the assertion are removed. r=jandem

This commit is contained in:
Nicolas B. Pierron 2017-10-13 13:44:01 +00:00
parent c03ee529f8
commit 7ddabbc5c9

View File

@ -216,13 +216,16 @@ class BumpChunk : public SingleLinkedListElement<BumpChunk>
uint8_t* bump_;
// Pointer to the last byte available in this chunk.
const uint8_t* capacity_;
#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
// Magic number used to check against poisoned values.
const uintptr_t magic_;
static constexpr uintptr_t magicNumber =
sizeof(uintptr_t) == 4 ? uintptr_t(0x4c69666f) : uintptr_t(0x4c69666f42756d70);
#endif
// Byte used for poisoning unused memory after releasing memory.
static constexpr int undefinedChunkMemory = 0xcd;
static constexpr uintptr_t magicNumber =
sizeof(uintptr_t) == 4 ? uintptr_t(0x4c69666f) : uintptr_t(0x4c69666f42756d70);
void assertInvariants() {
MOZ_DIAGNOSTIC_ASSERT(magic_ == magicNumber);
@ -235,8 +238,10 @@ class BumpChunk : public SingleLinkedListElement<BumpChunk>
explicit BumpChunk(uintptr_t capacity)
: bump_(begin()),
capacity_(base() + capacity),
magic_(magicNumber)
capacity_(base() + capacity)
#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
, magic_(magicNumber)
#endif
{
// We cannot bake this value inside the BumpChunk class, because
// sizeof(BumpChunk) can only be computed after the closing brace of the