Hi, With WebKit adopting C++17 a while back, there are no longer any benefits to using makeRef() / makeRefPtr() as far as I can tell.
Code that was written like so: auto protectedThis = makeRef(*this); auto protectedPage = makeRefPtr(page); auto result = makeRef(foo->bar()); auto lambda = [protectedThis = makeRef(*this)] { }; m_node = makeRef(node); // m_node being a Ref<Node> m_node = makeRefPtr(node); // m_node being a RefPtr<Node> Can now be written in a more concise way: Ref protectedThis { *this }; RefPtr protectedPage { page }; Ref result = foo->bar(); auto lambda = [protectedThis = Ref { *this }] { }; m_node = node; `m_node = node;` or `m_node = &node; // depending if node is a reference or pointer. I am currently in the process on transitioning our code from one style to the other and removing makeRef() / makeRefPtr() altogether. I am sending this email so people are not confused when they try to use makeRef() / makeRefPtr() in new code. -- Chris Dumez
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev