diff options
Diffstat (limited to 'WebCore/platform/TreeShared.h')
-rw-r--r-- | WebCore/platform/TreeShared.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/WebCore/platform/TreeShared.h b/WebCore/platform/TreeShared.h index 02728ff..a60ad0d 100644 --- a/WebCore/platform/TreeShared.h +++ b/WebCore/platform/TreeShared.h @@ -23,6 +23,9 @@ #include <wtf/Assertions.h> #include <wtf/Noncopyable.h> +#ifndef NDEBUG +#include <wtf/Threading.h> +#endif namespace WebCore { @@ -32,6 +35,7 @@ public: : m_refCount(initialRefCount) , m_parent(0) { + ASSERT(isMainThread()); #ifndef NDEBUG m_deletionHasBegun = false; m_inRemovedLastRefFunction = false; @@ -39,11 +43,13 @@ public: } virtual ~TreeShared() { + ASSERT(isMainThread()); ASSERT(m_deletionHasBegun); } void ref() { + ASSERT(isMainThread()); ASSERT(!m_deletionHasBegun); ASSERT(!m_inRemovedLastRefFunction); ++m_refCount; @@ -51,6 +57,7 @@ public: void deref() { + ASSERT(isMainThread()); ASSERT(!m_deletionHasBegun); ASSERT(!m_inRemovedLastRefFunction); if (--m_refCount <= 0 && !m_parent) { @@ -73,8 +80,17 @@ public: return m_refCount; } - void setParent(T* parent) { m_parent = parent; } - T* parent() const { return m_parent; } + void setParent(T* parent) + { + ASSERT(isMainThread()); + m_parent = parent; + } + + T* parent() const + { + ASSERT(isMainThread()); + return m_parent; + } #ifndef NDEBUG bool m_deletionHasBegun; |