summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/TreeShared.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/TreeShared.h')
-rw-r--r--WebCore/platform/TreeShared.h20
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;