diff options
Diffstat (limited to 'Source/WebCore/rendering/style/DataRef.h')
| -rw-r--r-- | Source/WebCore/rendering/style/DataRef.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Source/WebCore/rendering/style/DataRef.h b/Source/WebCore/rendering/style/DataRef.h index 0afb6ecd9..3eb14e1eb 100644 --- a/Source/WebCore/rendering/style/DataRef.h +++ b/Source/WebCore/rendering/style/DataRef.h @@ -24,17 +24,18 @@ #ifndef DataRef_h #define DataRef_h +#include <wtf/PassRef.h> #include <wtf/Ref.h> namespace WebCore { template <typename T> class DataRef { public: - DataRef(Ref<T>&& data) : m_data(WTFMove(data)) { } + DataRef(PassRef<T> data) : m_data(std::move(data)) { } DataRef(const DataRef& other) : m_data(const_cast<T&>(other.m_data.get())) { } DataRef& operator=(const DataRef& other) { m_data = const_cast<T&>(other.m_data.get()); return *this; } - const T* get() const { return m_data.ptr(); } + const T* get() const { return &m_data.get(); } const T& operator*() const { return *get(); } const T* operator->() const { return get(); } @@ -43,17 +44,17 @@ public: { if (!m_data->hasOneRef()) m_data = m_data->copy(); - return m_data.ptr(); + return &m_data.get(); } bool operator==(const DataRef<T>& o) const { - return m_data.ptr() == o.m_data.ptr() || m_data.get() == o.m_data.get(); + return &m_data.get() == &o.m_data.get() || m_data.get() == o.m_data.get(); } bool operator!=(const DataRef<T>& o) const { - return m_data.ptr() != o.m_data.ptr() && m_data.get() != o.m_data.get(); + return &m_data.get() != &o.m_data.get() && m_data.get() != o.m_data.get(); } private: |
