OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012 Apple Inc. All rights | 2 * Copyright (C) 2005, 2006, 2007, 2008, 2011, 2012 Apple Inc. All rights |
3 * reserved. | 3 * reserved. |
4 * Copyright (C) 2008 David Levin <levin@chromium.org> | 4 * Copyright (C) 2008 David Levin <levin@chromium.org> |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 do { \ | 79 do { \ |
80 } while (0) | 80 } while (0) |
81 #define UPDATE_ACCESS_COUNTS() \ | 81 #define UPDATE_ACCESS_COUNTS() \ |
82 do { \ | 82 do { \ |
83 } while (0) | 83 } while (0) |
84 #endif | 84 #endif |
85 #endif | 85 #endif |
86 | 86 |
87 namespace WTF { | 87 namespace WTF { |
88 | 88 |
| 89 // This is for tracing inside collections that have special support for weak |
| 90 // pointers. The trait has a trace method which returns true if there are weak |
| 91 // pointers to things that have not (yet) been marked live. Returning true |
| 92 // indicates that the entry in the collection may yet be removed by weak |
| 93 // handling. Default implementation for non-weak types is to use the regular |
| 94 // non-weak TraceTrait. Default implementation for types with weakness is to |
| 95 // call traceInCollection on the type's trait. |
| 96 template <WeakHandlingFlag weakHandlingFlag, |
| 97 ShouldWeakPointersBeMarkedStrongly strongify, |
| 98 typename T, |
| 99 typename Traits> |
| 100 struct TraceInCollectionTrait; |
| 101 |
89 #if DUMP_HASHTABLE_STATS | 102 #if DUMP_HASHTABLE_STATS |
90 struct WTF_EXPORT HashTableStats { | 103 struct WTF_EXPORT HashTableStats { |
91 HashTableStats() | 104 HashTableStats() |
92 : numAccesses(0), | 105 : numAccesses(0), |
93 numRehashes(0), | 106 numRehashes(0), |
94 numRemoves(0), | 107 numRemoves(0), |
95 numReinserts(0), | 108 numReinserts(0), |
96 maxCollisions(0), | 109 maxCollisions(0), |
97 numCollisions(0), | 110 numCollisions(0), |
98 collisionGraph() {} | 111 collisionGraph() {} |
(...skipping 2161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2260 CollectionIterator end(toBeRemoved.end()); | 2273 CollectionIterator end(toBeRemoved.end()); |
2261 for (CollectionIterator it(toBeRemoved.begin()); it != end; ++it) | 2274 for (CollectionIterator it(toBeRemoved.begin()); it != end; ++it) |
2262 collection.remove(*it); | 2275 collection.remove(*it); |
2263 } | 2276 } |
2264 | 2277 |
2265 } // namespace WTF | 2278 } // namespace WTF |
2266 | 2279 |
2267 #include "wtf/HashIterators.h" | 2280 #include "wtf/HashIterators.h" |
2268 | 2281 |
2269 #endif // WTF_HashTable_h | 2282 #endif // WTF_HashTable_h |
OLD | NEW |