Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: Source/wtf/ListHashSet.h

Issue 802203004: replace COMPILE_ASSERT with static assert in wtf/ (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: search/replace fixup Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2011, Benjamin Poulain <ikipou@gmail.com> 3 * Copyright (C) 2011, Benjamin Poulain <ikipou@gmail.com>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 public: 353 public:
354 typedef AllocatorArg NodeAllocator; 354 typedef AllocatorArg NodeAllocator;
355 typedef ValueArg Value; 355 typedef ValueArg Value;
356 356
357 template <typename U> 357 template <typename U>
358 ListHashSetNode(U value) 358 ListHashSetNode(U value)
359 : ListHashSetNodeBase<ValueArg>(value) { } 359 : ListHashSetNodeBase<ValueArg>(value) { }
360 360
361 void* operator new(size_t, NodeAllocator* allocator) 361 void* operator new(size_t, NodeAllocator* allocator)
362 { 362 {
363 COMPILE_ASSERT(sizeof(ListHashSetNode) == sizeof(ListHashSetNodeBase <ValueArg>), PleaseAddAnyFieldsToTheBase); 363 static_assert(sizeof(ListHashSetNode) == sizeof(ListHashSetNodeBase< ValueArg>), "Please add any fields to the base");
Nico 2014/12/16 17:56:28 uber nit: I'd lower case the first character of th
Mostyn Bramley-Moore 2014/12/16 19:00:37 Done. Should we add this to the style guide?
364 return allocator->allocateNode(); 364 return allocator->allocateNode();
365 } 365 }
366 366
367 void setWasAlreadyDestructed() 367 void setWasAlreadyDestructed()
368 { 368 {
369 if (NodeAllocator::isGarbageCollected && HashTraits<ValueArg>::needs Destruction) 369 if (NodeAllocator::isGarbageCollected && HashTraits<ValueArg>::needs Destruction)
370 this->m_prev = unlinkedNodePointer(); 370 this->m_prev = unlinkedNodePointer();
371 } 371 }
372 372
373 bool wasAlreadyDestructed() const 373 bool wasAlreadyDestructed() const
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 { 688 {
689 m_impl.swap(other.m_impl); 689 m_impl.swap(other.m_impl);
690 std::swap(m_head, other.m_head); 690 std::swap(m_head, other.m_head);
691 std::swap(m_tail, other.m_tail); 691 std::swap(m_tail, other.m_tail);
692 this->m_allocatorProvider.swap(other.m_allocatorProvider); 692 this->m_allocatorProvider.swap(other.m_allocatorProvider);
693 } 693 }
694 694
695 template<typename T, size_t inlineCapacity, typename U, typename V> 695 template<typename T, size_t inlineCapacity, typename U, typename V>
696 inline void ListHashSet<T, inlineCapacity, U, V>::finalize() 696 inline void ListHashSet<T, inlineCapacity, U, V>::finalize()
697 { 697 {
698 COMPILE_ASSERT(!Allocator::isGarbageCollected, FinalizeOnHeapAllocatedLi stHashSetShouldNeverBeCalled); 698 static_assert(!Allocator::isGarbageCollected, "Heap allocated ListHashSe t should never call finalize()");
699 deleteAllNodes(); 699 deleteAllNodes();
700 } 700 }
701 701
702 template<typename T, size_t inlineCapacity, typename U, typename V> 702 template<typename T, size_t inlineCapacity, typename U, typename V>
703 inline T& ListHashSet<T, inlineCapacity, U, V>::first() 703 inline T& ListHashSet<T, inlineCapacity, U, V>::first()
704 { 704 {
705 ASSERT(!isEmpty()); 705 ASSERT(!isEmpty());
706 return m_head->m_value; 706 return m_head->m_value;
707 } 707 }
708 708
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 if (!m_head) 989 if (!m_head)
990 return; 990 return;
991 991
992 for (Node* node = m_head, *next = m_head->next(); node; node = next, nex t = node ? node->next() : 0) 992 for (Node* node = m_head, *next = m_head->next(); node; node = next, nex t = node ? node->next() : 0)
993 node->destroy(this->allocator()); 993 node->destroy(this->allocator());
994 } 994 }
995 995
996 template<typename T, size_t inlineCapacity, typename U, typename V> 996 template<typename T, size_t inlineCapacity, typename U, typename V>
997 void ListHashSet<T, inlineCapacity, U, V>::trace(typename Allocator::Visitor * visitor) 997 void ListHashSet<T, inlineCapacity, U, V>::trace(typename Allocator::Visitor * visitor)
998 { 998 {
999 COMPILE_ASSERT(HashTraits<T>::weakHandlingFlag == NoWeakHandlingInCollec tions, ListHashSetDoesNotSupportWeakness); 999 static_assert(HashTraits<T>::weakHandlingFlag == NoWeakHandlingInCollect ions, "ListHashSetDoesNotSupportWeakness");
Nico 2014/12/16 17:56:28 intentionally no spaces here?
Mostyn Bramley-Moore 2014/12/16 19:00:37 Fixed.
1000 // This marks all the nodes and their contents live that can be 1000 // This marks all the nodes and their contents live that can be
1001 // accessed through the HashTable. That includes m_head and m_tail 1001 // accessed through the HashTable. That includes m_head and m_tail
1002 // so we do not have to explicitly trace them here. 1002 // so we do not have to explicitly trace them here.
1003 m_impl.trace(visitor); 1003 m_impl.trace(visitor);
1004 } 1004 }
1005 1005
1006 #if !ENABLE(OILPAN) 1006 #if !ENABLE(OILPAN)
1007 template<typename T, size_t U, typename V> 1007 template<typename T, size_t U, typename V>
1008 struct NeedsTracing<ListHashSet<T, U, V> > { 1008 struct NeedsTracing<ListHashSet<T, U, V> > {
1009 static const bool value = false; 1009 static const bool value = false;
1010 }; 1010 };
1011 #endif 1011 #endif
1012 1012
1013 } // namespace WTF 1013 } // namespace WTF
1014 1014
1015 using WTF::ListHashSet; 1015 using WTF::ListHashSet;
1016 1016
1017 #endif /* WTF_ListHashSet_h */ 1017 #endif /* WTF_ListHashSet_h */
OLDNEW
« no previous file with comments | « Source/wtf/HashTable.h ('k') | Source/wtf/OwnPtr.h » ('j') | Source/wtf/Vector.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698