RenderElement::m_style should be a Ref.
[WebKit-https.git] / Source / WTF / wtf / Ref.h
index 6a0d971..6ff7c82 100644 (file)
@@ -60,10 +60,19 @@ public:
     const T& get() const { return *m_ptr; }
     T& get() { return *m_ptr; }
 
+    template<typename U> PassRef<T> replace(PassRef<U>) WARN_UNUSED_RETURN;
+
 private:
     T* m_ptr;
 };
 
+template<typename T> template<typename U> inline PassRef<T> Ref<T>::replace(PassRef<U> reference)
+{
+    auto oldReference = adoptRef(*m_ptr);
+    m_ptr = &reference.leakRef();
+    return oldReference;
+}
+
 } // namespace WTF
 
 using WTF::Ref;