| 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 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1576 index++; | 1576 index++; |
| 1577 } | 1577 } |
| 1578 return index; | 1578 return index; |
| 1579 } | 1579 } |
| 1580 | 1580 |
| 1581 template<typename Header> | 1581 template<typename Header> |
| 1582 HeapPage<Header>::HeapPage(PageMemory* storage, ThreadHeap<Header>* heap, const
GCInfo* gcInfo) | 1582 HeapPage<Header>::HeapPage(PageMemory* storage, ThreadHeap<Header>* heap, const
GCInfo* gcInfo) |
| 1583 : BaseHeapPage(storage, gcInfo, heap->threadState()) | 1583 : BaseHeapPage(storage, gcInfo, heap->threadState()) |
| 1584 , m_next(nullptr) | 1584 , m_next(nullptr) |
| 1585 { | 1585 { |
| 1586 COMPILE_ASSERT(!(sizeof(HeapPage<Header>) & allocationMask), page_header_inc
orrectly_aligned); | 1586 static_assert(!(sizeof(HeapPage<Header>) & allocationMask), "page header inc
orrectly aligned"); |
| 1587 m_objectStartBitMapComputed = false; | 1587 m_objectStartBitMapComputed = false; |
| 1588 ASSERT(isPageHeaderAddress(reinterpret_cast<Address>(this))); | 1588 ASSERT(isPageHeaderAddress(reinterpret_cast<Address>(this))); |
| 1589 } | 1589 } |
| 1590 | 1590 |
| 1591 template<typename Header> | 1591 template<typename Header> |
| 1592 size_t HeapPage<Header>::objectPayloadSizeForTesting() | 1592 size_t HeapPage<Header>::objectPayloadSizeForTesting() |
| 1593 { | 1593 { |
| 1594 size_t objectPayloadSize = 0; | 1594 size_t objectPayloadSize = 0; |
| 1595 Address headerAddress = payload(); | 1595 Address headerAddress = payload(); |
| 1596 ASSERT(headerAddress != end()); | 1596 ASSERT(headerAddress != end()); |
| (...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2105 #endif | 2105 #endif |
| 2106 return true; | 2106 return true; |
| 2107 } | 2107 } |
| 2108 | 2108 |
| 2109 #if ENABLE(ASSERT) | 2109 #if ENABLE(ASSERT) |
| 2110 #define DEFINE_ENSURE_MARKED_METHOD(Type)
\ | 2110 #define DEFINE_ENSURE_MARKED_METHOD(Type)
\ |
| 2111 virtual bool ensureMarked(const Type* objectPointer) override
\ | 2111 virtual bool ensureMarked(const Type* objectPointer) override
\ |
| 2112 {
\ | 2112 {
\ |
| 2113 if (!objectPointer)
\ | 2113 if (!objectPointer)
\ |
| 2114 return false;
\ | 2114 return false;
\ |
| 2115 COMPILE_ASSERT(!NeedsAdjustAndMark<Type>::value, CanOnlyUseIsMarkedOnNon
AdjustedTypes); \ | 2115 static_assert(!NeedsAdjustAndMark<Type>::value,
\ |
| 2116 "ensureMarked can only be used on non adjusted types");
\ |
| 2116 if (Mode == ThreadLocalMarking && !objectInTerminatingThreadHeap(objectP
ointer)) \ | 2117 if (Mode == ThreadLocalMarking && !objectInTerminatingThreadHeap(objectP
ointer)) \ |
| 2117 return false;
\ | 2118 return false;
\ |
| 2118 if (isMarked(objectPointer))
\ | 2119 if (isMarked(objectPointer))
\ |
| 2119 return false;
\ | 2120 return false;
\ |
| 2120 markNoTracing(objectPointer);
\ | 2121 markNoTracing(objectPointer);
\ |
| 2121 return true;
\ | 2122 return true;
\ |
| 2122 } | 2123 } |
| 2123 #else | 2124 #else |
| 2124 #define DEFINE_ENSURE_MARKED_METHOD(Type)
\ | 2125 #define DEFINE_ENSURE_MARKED_METHOD(Type)
\ |
| 2125 virtual bool ensureMarked(const Type* objectPointer) override
\ | 2126 virtual bool ensureMarked(const Type* objectPointer) override
\ |
| (...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2946 bool Heap::s_shutdownCalled = false; | 2947 bool Heap::s_shutdownCalled = false; |
| 2947 bool Heap::s_lastGCWasConservative = false; | 2948 bool Heap::s_lastGCWasConservative = false; |
| 2948 FreePagePool* Heap::s_freePagePool; | 2949 FreePagePool* Heap::s_freePagePool; |
| 2949 OrphanedPagePool* Heap::s_orphanedPagePool; | 2950 OrphanedPagePool* Heap::s_orphanedPagePool; |
| 2950 Heap::RegionTree* Heap::s_regionTree = nullptr; | 2951 Heap::RegionTree* Heap::s_regionTree = nullptr; |
| 2951 size_t Heap::s_allocatedObjectSize = 0; | 2952 size_t Heap::s_allocatedObjectSize = 0; |
| 2952 size_t Heap::s_allocatedSpace = 0; | 2953 size_t Heap::s_allocatedSpace = 0; |
| 2953 size_t Heap::s_markedObjectSize = 0; | 2954 size_t Heap::s_markedObjectSize = 0; |
| 2954 | 2955 |
| 2955 } // namespace blink | 2956 } // namespace blink |
| OLD | NEW |