Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 size_t size() const; | 198 size_t size() const; |
| 199 | 199 |
| 200 NO_SANITIZE_ADDRESS | 200 NO_SANITIZE_ADDRESS |
| 201 size_t gcInfoIndex() const { return (m_encoded & headerGCInfoIndexMask) >> h eaderGCInfoIndexShift; } | 201 size_t gcInfoIndex() const { return (m_encoded & headerGCInfoIndexMask) >> h eaderGCInfoIndexShift; } |
| 202 NO_SANITIZE_ADDRESS | 202 NO_SANITIZE_ADDRESS |
| 203 void setSize(size_t size) | 203 void setSize(size_t size) |
| 204 { | 204 { |
| 205 ASSERT(size < nonLargeObjectPageSizeMax); | 205 ASSERT(size < nonLargeObjectPageSizeMax); |
| 206 m_encoded = static_cast<uint32_t>(size) | (m_encoded & ~headerSizeMask); | 206 m_encoded = static_cast<uint32_t>(size) | (m_encoded & ~headerSizeMask); |
| 207 } | 207 } |
| 208 bool isDOMMarked() const; | |
| 209 void markDOM(); | |
| 210 void unmarkDOM(); | |
|
haraken
2016/04/13 12:26:23
isDOMMarked => isWrappableMarked
markDOM => markWr
Marcel Hlopko
2016/04/14 16:39:08
Done.
| |
| 208 bool isMarked() const; | 211 bool isMarked() const; |
| 209 void mark(); | 212 void mark(); |
| 210 void unmark(); | 213 void unmark(); |
| 211 void markDead(); | 214 void markDead(); |
| 212 bool isDead() const; | 215 bool isDead() const; |
| 213 | 216 |
| 214 Address payload(); | 217 Address payload(); |
| 215 size_t payloadSize(); | 218 size_t payloadSize(); |
| 216 Address payloadEnd(); | 219 Address payloadEnd(); |
| 217 | 220 |
| (...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 828 | 831 |
| 829 inline HeapObjectHeader* HeapObjectHeader::fromPayload(const void* payload) | 832 inline HeapObjectHeader* HeapObjectHeader::fromPayload(const void* payload) |
| 830 { | 833 { |
| 831 Address addr = reinterpret_cast<Address>(const_cast<void*>(payload)); | 834 Address addr = reinterpret_cast<Address>(const_cast<void*>(payload)); |
| 832 HeapObjectHeader* header = reinterpret_cast<HeapObjectHeader*>(addr - sizeof (HeapObjectHeader)); | 835 HeapObjectHeader* header = reinterpret_cast<HeapObjectHeader*>(addr - sizeof (HeapObjectHeader)); |
| 833 ASSERT(header->checkHeader()); | 836 ASSERT(header->checkHeader()); |
| 834 return header; | 837 return header; |
| 835 } | 838 } |
| 836 | 839 |
| 837 NO_SANITIZE_ADDRESS inline | 840 NO_SANITIZE_ADDRESS inline |
| 841 bool HeapObjectHeader::isDOMMarked() const | |
| 842 { | |
| 843 ASSERT(checkHeader()); | |
| 844 return m_encoded & headerDOMMarkBitMask; | |
|
haraken
2016/04/13 12:26:22
Where is headerDOMMarkBitMask defined?
Marcel Hlopko
2016/04/14 16:39:08
HeapPage.h:145
const size_t headerDOMMarkBitMask =
| |
| 845 } | |
| 846 | |
| 847 NO_SANITIZE_ADDRESS inline | |
| 848 void HeapObjectHeader::markDOM() | |
| 849 { | |
| 850 ASSERT(checkHeader()); | |
| 851 ASSERT(!isDOMMarked()); | |
| 852 m_encoded |= headerDOMMarkBitMask; | |
| 853 } | |
| 854 | |
| 855 NO_SANITIZE_ADDRESS inline | |
| 856 void HeapObjectHeader::unmarkDOM() | |
| 857 { | |
| 858 ASSERT(checkHeader()); | |
| 859 ASSERT(isDOMMarked()); | |
| 860 m_encoded &= ~headerDOMMarkBitMask; | |
| 861 } | |
| 862 | |
| 863 NO_SANITIZE_ADDRESS inline | |
| 838 bool HeapObjectHeader::isMarked() const | 864 bool HeapObjectHeader::isMarked() const |
| 839 { | 865 { |
| 840 ASSERT(checkHeader()); | 866 ASSERT(checkHeader()); |
| 841 return m_encoded & headerMarkBitMask; | 867 return m_encoded & headerMarkBitMask; |
| 842 } | 868 } |
| 843 | 869 |
| 844 NO_SANITIZE_ADDRESS inline | 870 NO_SANITIZE_ADDRESS inline |
| 845 void HeapObjectHeader::mark() | 871 void HeapObjectHeader::mark() |
| 846 { | 872 { |
| 847 ASSERT(checkHeader()); | 873 ASSERT(checkHeader()); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 886 SET_MEMORY_ACCESSIBLE(result, allocationSize - sizeof(HeapObjectHeader)) ; | 912 SET_MEMORY_ACCESSIBLE(result, allocationSize - sizeof(HeapObjectHeader)) ; |
| 887 ASSERT(findPageFromAddress(headerAddress + allocationSize - 1)); | 913 ASSERT(findPageFromAddress(headerAddress + allocationSize - 1)); |
| 888 return result; | 914 return result; |
| 889 } | 915 } |
| 890 return outOfLineAllocate(allocationSize, gcInfoIndex); | 916 return outOfLineAllocate(allocationSize, gcInfoIndex); |
| 891 } | 917 } |
| 892 | 918 |
| 893 } // namespace blink | 919 } // namespace blink |
| 894 | 920 |
| 895 #endif // HeapPage_h | 921 #endif // HeapPage_h |
| OLD | NEW |