OLD | NEW |
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 980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 COMPILE_ASSERT(HashTraits<T>::weakHandlingFlag == NoWeakHandlingInCollec
tions, ListHashSetDoesNotSupportWeakness); |
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. | 1001 // accessed through the HashTable. That includes m_head and m_tail |
| 1002 // so we do not have to explicitly trace them here. |
1002 m_impl.trace(visitor); | 1003 m_impl.trace(visitor); |
1003 // Due to the order in which entries are added to the hash table vs. | |
1004 // when they are put in the linked list we have now marked all the | |
1005 // nodes live. | |
1006 ASSERT(!m_head || Allocator::isAlive(visitor, m_head)); | |
1007 ASSERT(!m_tail || Allocator::isAlive(visitor, m_tail)); | |
1008 } | 1004 } |
1009 | 1005 |
1010 } // namespace WTF | 1006 } // namespace WTF |
1011 | 1007 |
1012 using WTF::ListHashSet; | 1008 using WTF::ListHashSet; |
1013 | 1009 |
1014 #endif /* WTF_ListHashSet_h */ | 1010 #endif /* WTF_ListHashSet_h */ |
OLD | NEW |