summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/wtf/PassRefPtr.h
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/wtf/PassRefPtr.h')
-rw-r--r--JavaScriptCore/wtf/PassRefPtr.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/JavaScriptCore/wtf/PassRefPtr.h b/JavaScriptCore/wtf/PassRefPtr.h
index 7c5d868..230637a 100644
--- a/JavaScriptCore/wtf/PassRefPtr.h
+++ b/JavaScriptCore/wtf/PassRefPtr.h
@@ -76,8 +76,8 @@ namespace WTF {
T* get() const { return m_ptr; }
- void clear() { T* ptr = m_ptr; derefIfNotNull(ptr); m_ptr = 0; }
- T* leakRef() const;
+ void clear();
+ T* leakRef() const WARN_UNUSED_RETURN;
T& operator*() const { return *m_ptr; }
T* operator->() const { return m_ptr; }
@@ -96,7 +96,7 @@ namespace WTF {
friend PassRefPtr adoptRef<T>(T*);
// FIXME: Remove releaseRef once we change all callers to call leakRef instead.
- T* releaseRef() const { return leakRef(); }
+ T* releaseRef() const { return leakRef(); } WARN_UNUSED_RETURN;
private:
// adopting constructor
@@ -151,12 +151,15 @@ namespace WTF {
T* get() const { return m_ptr; }
- void clear() { derefIfNotNull(m_ptr); m_ptr = 0; }
- T* releaseRef() const { T* tmp = m_ptr; m_ptr = 0; return tmp; }
+ void clear();
+ T* leakRef() const { T* tmp = m_ptr; m_ptr = 0; return tmp; } WARN_UNUSED_RETURN;
T& operator*() const { return *m_ptr; }
T* operator->() const { return m_ptr; }
+ // FIXME: Remove releaseRef once we change all callers to call leakRef instead.
+ T* releaseRef() const { return leakRef(); } WARN_UNUSED_RETURN;
+
private:
mutable T* m_ptr;
};
@@ -168,6 +171,13 @@ namespace WTF {
refIfNotNull(ptr);
}
+ template<typename T> inline void PassRefPtr<T>::clear()
+ {
+ T* ptr = m_ptr;
+ m_ptr = 0;
+ derefIfNotNull(ptr);
+ }
+
template<typename T> inline T* PassRefPtr<T>::leakRef() const
{
T* ptr = m_ptr;
@@ -281,6 +291,13 @@ namespace WTF {
return p.get();
}
+ template<typename T> inline void NonNullPassRefPtr<T>::clear()
+ {
+ T* ptr = m_ptr;
+ m_ptr = 0;
+ derefIfNotNull(ptr);
+ }
+
} // namespace WTF
using WTF::PassRefPtr;