| Index: Source/platform/heap/Heap.h
|
| diff --git a/Source/platform/heap/Heap.h b/Source/platform/heap/Heap.h
|
| index d394b4a2419121b6622623571c95768312f3c1c7..af5994e54643911cc32b88784d62f70e2bc8b079 100644
|
| --- a/Source/platform/heap/Heap.h
|
| +++ b/Source/platform/heap/Heap.h
|
| @@ -180,7 +180,7 @@ public:
|
| // allocationGranurarity, because HeapObjectHeader is used as a header
|
| // for an freed entry. Given that the smallest entry size is
|
| // allocationGranurarity, HeapObjectHeader must fit into the size.
|
| - COMPILE_ASSERT(sizeof(HeapObjectHeader) <= allocationGranularity, SizeOfHeapObjectHeaderMustBeSmallerThanAllocationGranularity);
|
| + static_assert(sizeof(HeapObjectHeader) <= allocationGranularity, "size of HeapObjectHeader must be smaller than allocationGranularity");
|
| }
|
|
|
| NO_SANITIZE_ADDRESS
|
| @@ -190,7 +190,7 @@ public:
|
| , m_magic(magic)
|
| #endif
|
| {
|
| - COMPILE_ASSERT(sizeof(HeapObjectHeader) <= allocationGranularity, SizeOfHeapObjectHeaderMustBeSmallerThanAllocationGranularity);
|
| + static_assert(sizeof(HeapObjectHeader) <= allocationGranularity, "size of HeapObjectHeader must be smaller than allocationGranularity");
|
| }
|
|
|
| static size_t freeListEncodedSize(size_t size) { return size | freeListMask; }
|
| @@ -541,7 +541,7 @@ class LargeObject final : public BaseHeapPage {
|
| public:
|
| LargeObject(PageMemory* storage, const GCInfo* gcInfo, ThreadState* state) : BaseHeapPage(storage, gcInfo, state)
|
| {
|
| - COMPILE_ASSERT(!(sizeof(LargeObject<Header>) & allocationMask), large_heap_object_header_misaligned);
|
| + static_assert(!(sizeof(LargeObject<Header>) & allocationMask), "LargeObject<Header> misaligned");
|
| }
|
|
|
| virtual void checkAndMarkPointer(Visitor*, Address) override;
|
| @@ -1647,7 +1647,9 @@ public:
|
| // pointer will always be null.
|
| void* allocateNode()
|
| {
|
| - COMPILE_ASSERT(!WTF::IsWeak<ValueArg>::value, WeakPointersInAListHashSetWillJustResultInNullEntriesInTheSetThatsNotWhatYouWantConsiderUsingLinkedHashSetInstead);
|
| + // Consider using a LinkedHashSet instead if this compile-time assert fails:
|
| + static_assert(!WTF::IsWeak<ValueArg>::value, "weak pointers in a ListHashSet will result in null entries in the set");
|
| +
|
| return malloc<void*, Node>(sizeof(Node));
|
| }
|
|
|
| @@ -2136,7 +2138,7 @@ struct TraceInCollectionTrait<NoWeakHandlingInCollections, strongify, blink::Hea
|
| // payloadSize call below, since there is nowhere to store the
|
| // originally allocated memory. This assert ensures that visiting the
|
| // last bit of memory can't cause trouble.
|
| - COMPILE_ASSERT(!ShouldBeTraced<Traits>::value || sizeof(T) > blink::allocationGranularity || Traits::canInitializeWithMemset, HeapOverallocationCanCauseSpuriousVisits);
|
| + static_assert(!ShouldBeTraced<Traits>::value || sizeof(T) > blink::allocationGranularity || Traits::canInitializeWithMemset, "heap overallocation can cause spurious visits");
|
|
|
| T* array = reinterpret_cast<T*>(self);
|
| blink::GeneralHeapObjectHeader* header = blink::GeneralHeapObjectHeader::fromPayload(self);
|
| @@ -2232,7 +2234,7 @@ struct TraceInCollectionTrait<WeakHandlingInCollections, strongify, KeyValuePair
|
| const bool valueIsWeak = Traits::ValueTraits::weakHandlingFlag == WeakHandlingInCollections;
|
| const bool keyHasStrongRefs = ShouldBeTraced<typename Traits::KeyTraits>::value;
|
| const bool valueHasStrongRefs = ShouldBeTraced<typename Traits::ValueTraits>::value;
|
| - COMPILE_ASSERT(!keyIsWeak || !valueIsWeak || !keyHasStrongRefs || !valueHasStrongRefs, ThisConfigurationWasDisallowedToAvoidUnexpectedLeaks);
|
| + static_assert(!keyIsWeak || !valueIsWeak || !keyHasStrongRefs || !valueHasStrongRefs, "this configuration is disallowed to avoid unexpected leaks");
|
| if ((valueIsWeak && !keyIsWeak) || (valueIsWeak && keyIsWeak && !valueHasStrongRefs)) {
|
| // Check value first.
|
| bool deadWeakObjectsFoundOnValueSide = blink::CollectionBackingTraceTrait<ShouldBeTraced<typename Traits::ValueTraits>::value, Traits::ValueTraits::weakHandlingFlag, strongify, Value, typename Traits::ValueTraits>::trace(visitor, self.value);
|
| @@ -2306,7 +2308,7 @@ static void verifyGarbageCollectedIfMember(T*)
|
| template<typename T>
|
| static void verifyGarbageCollectedIfMember(Member<T>* t)
|
| {
|
| - COMPILE_ASSERT_IS_GARBAGE_COLLECTED(T, NonGarbageCollectedObjectInMember);
|
| + STATIC_ASSERT_IS_GARBAGE_COLLECTED(T, "non garbage collected object in member");
|
| }
|
|
|
| // Specialization for things that either need marking or have weak pointers or
|
| @@ -2351,7 +2353,7 @@ struct TraceTrait<HeapVectorBacking<T, Traits>> {
|
| using Backing = HeapVectorBacking<T, Traits>;
|
| static void trace(Visitor* visitor, void* self)
|
| {
|
| - COMPILE_ASSERT(!WTF::IsWeak<T>::value, WeDontSupportWeaknessInHeapVectorsOrDeques);
|
| + static_assert(!WTF::IsWeak<T>::value, "weakness in HeapVectors and Deques are not supported");
|
| if (WTF::ShouldBeTraced<Traits>::value)
|
| WTF::TraceInCollectionTrait<WTF::NoWeakHandlingInCollections, WTF::WeakPointersActWeak, HeapVectorBacking<T, Traits>, void>::trace(visitor, self);
|
| }
|
|
|