Index: Source/platform/heap/Handle.h |
diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h |
index 039942a967d4975a076a205fe34e5feb3aa66aea..f02e95c58106ce8483d4caa00cf76009632346aa 100644 |
--- a/Source/platform/heap/Handle.h |
+++ b/Source/platform/heap/Handle.h |
@@ -220,6 +220,9 @@ protected: |
, m_roots(RootsAccessor::roots()) |
#endif |
{ |
+ // We don't support allocation of thread local Persistents while doing |
+ // thread shutdown/cleanup. |
+ ASSERT(!ThreadState::current()->isTerminating()); |
typename RootsAccessor::Lock lock; |
ASSERT(otherref.m_roots == m_roots); // Handles must belong to the same list. |
PersistentBase* other = const_cast<PersistentBase*>(&otherref); |
@@ -247,6 +250,14 @@ public: |
current->trace(visitor); |
} |
+ int numberOfPersistents() |
+ { |
+ int numberOfPersistents = 0; |
+ for (PersistentNode* current = m_next; current != this; current = current->m_next) |
+ ++numberOfPersistents; |
+ return numberOfPersistents; |
+ } |
+ |
virtual ~PersistentAnchor() |
{ |
// FIXME: oilpan: Ideally we should have no left-over persistents at this point. However currently there is a |