Chromium Code Reviews| Index: third_party/WebKit/Source/platform/heap/HeapPage.h |
| diff --git a/third_party/WebKit/Source/platform/heap/HeapPage.h b/third_party/WebKit/Source/platform/heap/HeapPage.h |
| index ed6582cb0b2c2e19968b467aa4967ca9f3e14692..963860ab3a0f21f4a53f67b29e17b2b553ce1881 100644 |
| --- a/third_party/WebKit/Source/platform/heap/HeapPage.h |
| +++ b/third_party/WebKit/Source/platform/heap/HeapPage.h |
| @@ -226,7 +226,8 @@ class PLATFORM_EXPORT HeapObjectHeader { |
| // TODO(633030): Make |checkHeader| and |zapMagic| private. This class should |
| // manage its integrity on its own, without requiring outside callers to |
| // explicitly check. |
| - bool checkHeader() const; |
| + void checkHeader() const; |
| + |
| // Zap magic number with a new magic number that means there was once an |
| // object allocated here, but it was freed because nobody marked it during |
| // GC. |
| @@ -835,8 +836,8 @@ NO_SANITIZE_ADDRESS inline size_t HeapObjectHeader::size() const { |
| return result; |
| } |
| -NO_SANITIZE_ADDRESS inline bool HeapObjectHeader::checkHeader() const { |
| - return m_magic == getMagic(); |
| +NO_SANITIZE_ADDRESS inline void HeapObjectHeader::checkHeader() const { |
| + ASSERT(m_magic == getMagic()); |
|
sof
2017/02/16 18:50:04
ASSERT => DCHECK
jbroman
2017/02/16 19:08:09
DCHECK_EQ?
|
| } |
| inline Address HeapObjectHeader::payload() { |
| @@ -861,7 +862,7 @@ inline HeapObjectHeader* HeapObjectHeader::fromPayload(const void* payload) { |
| Address addr = reinterpret_cast<Address>(const_cast<void*>(payload)); |
| HeapObjectHeader* header = |
| reinterpret_cast<HeapObjectHeader*>(addr - sizeof(HeapObjectHeader)); |
| - ASSERT(header->checkHeader()); |
| + header->checkHeader(); |
| return header; |
| } |
| @@ -897,35 +898,35 @@ inline uint32_t HeapObjectHeader::getMagic() const { |
| NO_SANITIZE_ADDRESS inline bool HeapObjectHeader::isWrapperHeaderMarked() |
| const { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| return m_encoded & headerWrapperMarkBitMask; |
| } |
| NO_SANITIZE_ADDRESS inline void HeapObjectHeader::markWrapperHeader() { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| ASSERT(!isWrapperHeaderMarked()); |
| m_encoded |= headerWrapperMarkBitMask; |
| } |
| NO_SANITIZE_ADDRESS inline void HeapObjectHeader::unmarkWrapperHeader() { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| ASSERT(isWrapperHeaderMarked()); |
| m_encoded &= ~headerWrapperMarkBitMask; |
| } |
| NO_SANITIZE_ADDRESS inline bool HeapObjectHeader::isMarked() const { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| return m_encoded & headerMarkBitMask; |
| } |
| NO_SANITIZE_ADDRESS inline void HeapObjectHeader::mark() { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| ASSERT(!isMarked()); |
| m_encoded = m_encoded | headerMarkBitMask; |
| } |
| NO_SANITIZE_ADDRESS inline void HeapObjectHeader::unmark() { |
| - ASSERT(checkHeader()); |
| + checkHeader(); |
| ASSERT(isMarked()); |
| m_encoded &= ~headerMarkBitMask; |
| } |